MongoDB的基本操作

插入文档

for(i=1;i<=20;i++){  db.users.insert({"uuid":i,"uname":"hxf"+i,"salary":2000+Math.round(Math.random()*5000)}) }

salary为2000-7000的随机数,Math.round四舍五入

删除文档及集合

db.users.remove({"uuid":1})  //删除指定条件的文档

db.users.remove({})  //清空整个集合

db.users.drop()

true

更新文档

文档替换

db.users.update({"uuid":2},{"uuid" : 2, "uname" : "hxf200", "salary" : 2350})  

注:虽然只更新uname,但所有的数据都要写上

变量替换

a=db.users.findOne({"uuid":3})

a.uname="hxf300"

db.users.update({"uuid":3},a)  

修改器$inc更新(单条)

db.users.update({"uuid" : 2},{"$inc":{"salary":1000}})

db.users.update({"uuid" : 2},{"$inc":{"salary":-1000}})

增加或删除某个字段(单条)

db.users.update({"uuid":2},{"$set":{"age":28}}) //增加一个字段

db.users.update({"uuid":2},{"$unset":{"age":1}}) //删除一个字段,此时1代表true

其他参数

db.users.update({arg1},{arg2},arg3,arg4)

参数1:条件

参数2:需要操作的更新内容

参数3:如果文档不存在是否启用插入true/false (默认false)

参数4:是否更新全部匹配的文档(默认更新第一条)true/false

验证参数3

db.users.update({"uuid":100},{"uuid" : 100, "uname" : "hxf1", "salary" : 2998},true) //集合会新插入一条文档

验证参数4

db.users.update({},{"$inc":{"salary":10000}},false,true)

db.users.update({"uuid":2},{"$set":{"age":28}},false,true)

数组的操作

数组的增加

示例数据:

db.users2.insert({"uuid":1,"uname":"hxf","contact":{"addr":"beijing","code":"1","qq":"1234567"},email:[]})

{"$push":{"$key":"value"}} 在数组末尾添加一元素:

db.users2.update({"uuid":1},{"$push":{"email":"a"}})

{"$pushAll":{"$key":["val1","val2","val3"]}}在数组末尾添加多个元素:

db.users2.update({"uuid":1},{"$pushAll":{"email":["b","c","d"]}})

{"$addToSet":{"$key":"value"} 向数组添加一个不重复的元素:

db.users2.update({"uuid":1},{"$addToSet":{"email":"a"}})  //此时未插入 ,因为含有a

db.users2.update({"uuid":1},{"$addToSet":{"email":"e"}})  //此时插入

{"$addToSet":{"$key":{"$each:["val1","val2","val3"]}}}   向数组添加多个不重复的元素:

db.users2.update({"uuid":1},{"$addToSet":{"email":{"$each":["e","f","g"]}}})

数组的删除

{$pop:{key:1}) 从数组末尾删除一元素:

db.users2.update({"uuid":1},{"$pop":{"email":1}})

{$pop:{key:-1}) 从数组开头删除一元素:

db.users2.update({"uuid":1},{"$pop":{"email":-1}})

{$pull:{"key":"val"}} 删除一个数组内所有等于val的值:

db.users2.update({"uuid":1},{"$pull":{"email":"b"}})

{$pullAll:{"key":["val1","val2","val3"]}} 删除所有多个数组内的值:

db.users2.update({"uuid":1},{"$pullAll":{"email":["c","d"]}})

数组的定位修改

变量修改:

a=db.users2.findOne()

a.email

[ "e", "f" ]

a.email[0]

e

a.email[0]="a"

db.users2.update({"uuid":1},a)

直接修改:

db.users2.update({"uuid":1},{"$set":{"email.1":"b"}})

文档中的文档的修改

a=db.users2.findOne()

a.contact.addr="shanghai"

db.users2.update({"uuid":1},a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值