MongoDB nosql 非关系型数据库

MongoDB nosql 非关系型数据库

MongoDB 数据库  集合  文档

单表可以存储PB级别,存储数据量大

存储数据的格式是类Json格式,bson格式

插入和查询快速

安装MongoDB需要安装Mongod的服务

Mongod.exe –dbpath=数据库文件存储目录  --logpath=日志文件地址  --install[安装]  --remove[删除]

简单命令

  1. 获取当前数据库名称:db.getName()
  2. 创建数据库:use php49   //直接使用数据库,没有的话会自动创建
  3.  查看数据库状态: db.stats()
  4. 简单运算
  5. 查看数据库相关帮助信息: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’:  值} })

  1. 数组条件限制

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效果一样

 

账号权限

  1. 创建权限账号

“root:root”管理员账号(admin数据库)可以读写

“xiaohong:1234”普通账号(php48数据库)可以读,不可写

“xiaoming:1234”普通账号(php48数据库)可读可写

权限说明:

普通账号:只能操作本身数据库

管理员账号:可以操作全部的数据库

  1. 账号设置顺序:

必须先设置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

 

  1. 登录

db.auth(‘root’,’root’)

db.auth(‘xiaoming’,’1234’)

//登录成功会显示1

  1. 退出

db.logout()

注:观看黑马视屏时记录,感谢黑马。

 

猜你喜欢

转载自blog.csdn.net/qq_32059343/article/details/81367718