MongoDB nosql 非关系型数据库
MongoDB 数据库 集合 文档
单表可以存储PB级别,存储数据量大
存储数据的格式是类Json格式,bson格式
插入和查询快速
安装MongoDB需要安装Mongod的服务
Mongod.exe –dbpath=数据库文件存储目录 --logpath=日志文件地址 --install[安装] --remove[删除]
简单命令
- 获取当前数据库名称:db.getName()
- 创建数据库:use php49 //直接使用数据库,没有的话会自动创建
- 查看数据库状态: db.stats()
- 简单运算
- 查看数据库相关帮助信息:db.help()
写入数据
1、Josn格式Bson格式,类Json格式
db.goods.insert({name:’huawei01’,price:1000,weight:135,number:35})
db.goods.find()
2、插入二维数据:
db.goods.insert({name:’xiaomi5’,price:1999,weight:156,number:45,area:{provice:’beijing’,city:’beijing’}})
3、数组信息的添加:
db.goods.insert({name:’xiaomax’,price:’2000’,weight:180,number:100,area:{province:’beijing’,city:’beijing’,color:[‘black’,’white’,’red’]}})
数据查询
1.笼统查询
db.数据表.find() //查询数据表的全部数据
db.数据表.findOne() //查询数据表的第一条数据
2.条件限制查询
条件:Bson对象
db.goods.find({name:huawei01}) //查询name=huawei01的记录信息
db.goods.find(条件)
db.数据表.findOne(条件) //返回满足的信息的第一条并格式化输出
插入数据自行设定id:_id
db.goods.insert({_id:2,name:’huawei10’,price:1000,weight:’135’,number:35})
3.范围条件查询
关键字: $gt $lt $gte $lte
> < >= <=
查询价格大于1005元的商品
db.goods.find({price:{‘$gt’ :1005}})
关键字$gt左右必须有引号
4.设置多个查询条件
db.数据表.find({条件,条件,条件}) //相当于mysql的and操作
例:db.goods.find({price:{‘ $gt’:1000},weight:{‘$lt’:100}})
//要求价格大于1000并且重量小于100的
db.goods.find({price:{‘$lte’:1000},weight:50})
//价格为1000并且重量等于50
5.多维字段查询
db.数据表.find({‘key.name’ :值})
db.数据表.find({key.name:{ ‘$gt’ : 值 }})
db.数据表.find({key.name:{‘$gt’:值}, key2.name2:{‘$lt’: 值} })
- 数组条件限制
db.数据表.find({字段(数组):val})
例:db.goods.find({color: ‘red’}) //查询颜色有红色记录条数,满足一个元素即可
db.数据表.find({字段(数组):{‘$all’:[v1,v2]}})
//数组元素值,存在v1和v2即可(v1,v2顺序不作要求)存在多个元素
例:db.goods.find({color:{‘$all’:[ ‘green’, ’blank’ ]}})
//同时有黑色和绿色两种手机记录
7.$or查询,多个条件,满足其一即可
db.goods.find({“$or”:[{price:2000},{number:{‘$lt’ :1000}}]})
8.限制字段查询:只查询需要的字段
db.数据表.find({条件},{字段:1/0,字段:1/0})
例:db.goods.find({price:2000},{name:1,price,0})
报错:要输出就全输出,要不输出就全不输出,_id除外,可以随意设置0,1
//1是输出,0是隐藏
修改数据
db.数据表.update({条件},{“$set”:{字段:值,字段:值 …}})
有$set的修改:只修改设置的字段,其他字段不变化
db.数据表.update({条件},{字段:值,字段:值…})
没有$set的修改:只修改设置的字段,没有修改的字段就删除了(除了_id字段)
(字段有则直接修改,没有则添加为新字段)
删除数据
删除记录:db.数据表.remove(条件)
删除字段:db.数据表.update({条件},{‘$unset’:{字段:1/字段:0}})
//1和0效果一样
账号权限
- 创建权限账号
“root:root”管理员账号(admin数据库)可以读写
“xiaohong:1234”普通账号(php48数据库)可以读,不可写
“xiaoming:1234”普通账号(php48数据库)可读可写
权限说明:
普通账号:只能操作本身数据库
管理员账号:可以操作全部的数据库
- 账号设置顺序:
必须先设置root管理员账号,其次在设置普通账号
创建账号指令:
db.addUser(username,password[,readonly=flase])
db.addUser(name,password,true)
db.addUser(name,password,false)
第一步:使用use admin数据库创建root管理员账号,创建普通账户
设置完账户需要,关闭服务,卸载服务:
重新加入 –auth权限参数,进行重新加入服务,重新启动mongodb服务
mongod.exe --dbpath= F:\MongoDB\mongo\db\ --logpath= F:\MongoDB\mongo\log.txt --remove
mongod.exe --dbpath= F:\MongoDB\mongo\db\ --logpath= F:\MongoDB\mongo\log.txt --install –auth
- 登录
db.auth(‘root’,’root’)
db.auth(‘xiaoming’,’1234’)
//登录成功会显示1
- 退出
db.logout()
注:观看黑马视屏时记录,感谢黑马。