mongodb 常用语句(更新操作)

一、update()命令

 

db.collection.update( criteria,objNew,upsert,multi )

 

criteria:update的查询条件,类似sql update查询内where后面的

objNew :update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert :这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi  :mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

 

例:

db.app.update({"downlaod_count":2},{$set:{"name":"OK"}},false,true);

db.app.update({"download_count":{$gt:1}},{$set:{"name":"OK"}}); 只更新了第一条记录

db.app.update({"download_count":{$gte:3}},{$set:{"name":"OK"}},false,true ); 全更新了

db.app.update({"download_count":{$lt:4}},{$set:{"name":"OK"}},true,false ); 只加进去了第一条

db.app.update({"download_count":{$lte:5}},{$set:{"name":"OK"}},true,true ); 全加进去了

db.app.update({"download_count":{$in:[1,2,3]}},{$inc:{"download_count":1}},false,true );全更新了

db.app.update({"download_count":{$nin:[1,2,3]}},{$inc:{"download_count":1}},false,false );只更新了第一条

 

 

二、mongodb的更新操作符:

 

1) $inc

用法:{ $inc:{field:value}} 对一个数字字段field增加value

db.app.update({"id":15},{$inc:{"download_count":1}});

db.app.update({"id":15},{$inc:{"download_count":-1}});

 

2) $set

用法:{ $set:{field:value}} 相当于sql的set field = value,全部数据类型都支持$set

db.app.update({"id":15},{$set:{"test1":"testv1","name":"testv2","test3":"testv3","test4":"testv4"}});

 

3) $unset

用法:{ $unset:{field:1}} 删除字段了

db.app.update({"id":15},{$unset:{"test1":1}});

 

4) $push

用法:{ $push:{field:value}}

把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去

db.app.update({"id":15},{$set:{"test1":["aaa","bbb"]}});

db.app.update({"id":15},{$push:{"test1": "ccc"}});

db.app.update({"id":15},{$push:{"name": "ccc"}});

db.app.update({"id":15},{$push:{"test1": ["ddd","eee"]}});

 

5) $pushAll

用法:{ $pushAll:{field:value_array}}

同$push,只是一次可以追加多个值到一个数组字段内

db.app.update({"id":15},{$pushAll:{"test1": ["fff","ggg"]}});

 

6) $addToSet

用法:{ $addToSet:{field:value}}

增加一个值到数组内,而且只有当这个值不在数组内才增加。例:

db.app.update({"id":15},{$addToSet:{"test1": {$each:["444","555"]}}});

db.app.update({"id":15},{$addToSet:{"test1": ["444","555"]}});

 

7) $pop

用法:

删除最后一个值:{ $pop:{field:1}}删除第一个值:{ $pop:{field:-1}}

 

注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。mongodb 1.1及以后的版本才可以用,例:

 

8) $pull

用法:$pull:{field:value}}

从数组field内删除一个等于value值。例:

> db.app.update({"id":15},{$pull:{"test1": "ggg"}});

 

9) $pullAll

用法:{ $pullAll:{field:value_array}}

同$pull,可以一次删除数组内的多个值

db.app.update({"id":15},{$pullAll:{"test1": [ "ccc","fff" ]}});

 

9) $rename

用法:{ $rename:{field:new_filed}}

重命名字段

db.app.update({"id":15},{$rename:{"test1":"bat" }});

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值