MongoDB杂记

1.
假如userinfo有如下两条文档
{ "_id" : 1, "name" : "ly", "friends" : [ { "name" : "mxw", "age" : 25 }, { "name" : "cpp", "age" : 21 } ] }
{ "_id" : 2, "name" : "wq", "friends" : [ { "name" : "ct", "age" : 25 }, { "name" : "hwl", "age" : 21 } ] }
要想查询拥有名称为mxw的朋友的用户可以这样查:
db.userinfo.find({'friends.name':'mxw'})
要想查询拥有名称为mxw并且年龄为25的朋友的用户可以这样查:
db.userinfo.find({friends:{name:'mxw',age:25}})
但是子文档属性的顺序不能改变,既不能这样:
db.userinfo.find({friends:{age:25,name:'mxw'}})

更新数组里的某个子文档:

db.userinfo.update({'friends.name':'mxw'},{'$set':{'friends.$.age':99}})

删除数组里的某个子文档:

db.userinfo.update({'friends.name':'mxw'},{'$pull':{friends:{name:'mxw'}}}) 

2.
假如bloginfo有如下一条文档
{"Blogid" : 3, "Blogname" : "sub2", "Blogtitle" : "sub2",  "Members" : { "7" : { "Memberid" : 7, "Flag" : 1, "Writetime" : "2011-10-26 10:53:29" } }, "Userid" : 1, "_id" : 3 }
现在想将其查询用户ID为7的用户是哪些博客的成员,可以这样查:
db.bloginfo.find({'Members.7':{'$exists':true}})
还可以这样查
db.bloginfo.find({'Members.7.Memberid':7})
原文地址:https://www.cnblogs.com/mxw09/p/2224943.html