MongoDB修改器

1.$set 增加一个键
> db.foobar.find()
{ "_id" : ObjectId("53bcbcdf683a68fb76101910"), "age" : 77, "relationships" : { "friends" : 27, "enemies" : 17 }, "username" : "dai" } 
> db.foobar.update({"username":"dai"},{"$set":{"age":50}} ) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find() 
{ "_id" : ObjectId("53bcbcdf683a68fb76101910"), "age" : 50, "relationships" : { "friends" : 27, "enemies" : 17 }, "username" : "dai" }

2.$unset 删除一个键
> db.foobar.find() 
{ "_id" : ObjectId("53bcbcdf683a68fb76101910"), "age" : 50, "relationships" : { "friends" : 27, "enemies" : 50 }, "username" : "daiweiwei" } 
> db.foobar.update({"_id":ObjectId("53bcbcdf683a68fb76101910")},{"$unset":{"user name":1}} ) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find() 
{ "_id" : ObjectId("53bcbcdf683a68fb76101910"), "age" : 50, "relationships" : { "friends" : 27, "enemies" : 50 } } 

3.$inc  增加已有键的值,或者在键不存在时创建一个键,只能用于整形长整行/双精度浮点型
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{"$inc":{"score":30}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 30 }
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{"$inc":{"score  ":3}})  注意score的变化
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")})
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33 } 
4.数组修改器,不仅可以通过索引进行引用列表,而且可以作为集合使用,

     4.1$pop 从数组中弹出,通过{$pop:{key : 1 } }从数组尾删除一个元素 {$pop:{key : -1 } }从数组头部删除

 > db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")})
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17  , "score" : 33, "book" : [ { "1" : 1, "2" : 2, "3" : 3 }, { "1" : 1, "2" : 2, "4  " : 4 } ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$pop: {"book": 1}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")})
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17  , "score" : 33, "book" : [ { "1" : 1, "2" : 2, "3" : 3 } ] }
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")})
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17  , "score" : 33, "book" : [ 1, 2, 3, 4, 5 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$pop: {"book": -1}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17  , "score" : 33, "book" : [ 2, 3, 4, 5 ] }

     4.2.$push 指定的键如果存在,则在数组末尾添加元素,如果没有则创建一个数组,要是$push成为了瓶颈,可以将内嵌数组独立出来,放到单独的一个集合里。

> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$push: {"book":{"1":1,"2":2,"3":3}}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ { "1" : 1, "2" : 2, "3" : 3 } ] } 

     4.3.$addToSet添加新的元素到数组时可以避免重复


> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$push: {"book" :2}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1, 2 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$addToSet: {"book":2}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1, 2 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$addToSet: {"book":3}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1, 2, 3 ] }

    4.4$each如果想添加多个元素可以组合"$each"

> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1, 2, 3 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$addToSet: {"book":{"$each":[4,2,3,1,5,6]}}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 1, 2, 3, 4, 5, 6 ] } 

    4.5$pull删除数组特定值的元素

> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 3, 4, 2, 1, 5, 6, 7, 8, 9 ] } 
> db.foobar.update({"_id": ObjectId("53bcda12683a68fb76101911")},{$pull: {"book" : 1}}) 
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.foobar.find({"_id": ObjectId("53bcda12683a68fb76101911")}) 
{ "_id" : ObjectId("53bcda12683a68fb76101911"), "name" : "daiweiwei", "age" : 17 , "score" : 33, "book" : [ 3, 4, 2, 5, 6, 7, 8, 9 ] } 
    4.6$ 数组的定位修改器





1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值