首页 > 代码库 > Mongdb操作嵌套文档
Mongdb操作嵌套文档
1、一个文档如下
db.posts.find()
{ "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!", "comments" : [] }
2、往_id等于"5388162dfc164ee1f39be37f"的文档中的comments插入数据
db.posts.update({"_id":ObjectId("5388162dfc164ee1f39be37f")},{$push:{"comments":{"content":"Good Article!","author":"Luxh"}}
再插入一条
db.posts.update({"_id":ObjectId("5388162dfc164ee1f39be37f")},{$push:{"comments":{"content":"Not bad!","author":"Chuliuxiang"}}})
结果如下
db.posts.find() { "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!", "comments" : [ { "content" : "Good Article!", "author" : "Luxh" }, { "content" : "Not bad!", "author" : "Chuliuxiang" } ] }
3、根据内嵌文档查询
1)查询出Luxh评论过的文章
db.posts.find({"comments.author":"Luxh"}) 结果如下: { "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!", "comments" : [ { "content" : "Good Article!", "author" : "Luxh" }, { "content" : "Not bad!", "author" : "Chuliuxiang" } ] }
2)查询Luxh评论过的文章,返回指定的键
db.posts.find({"comments.author":"Luxh"},{"title":1,"content":1}) 结果如下: { "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!" }
_id默认会返回。取消可设置"_id":0
4、修改
将author=Luxh评论的内容content修改为"I like it!"
db.posts.update({"comments.author":"Luxh"},{$set:{"comments.$.content":"I like it!"}}) 结果如下: { "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!", "comments" : [ { "content" : "I like it!", "author" : "Luxh" }, { "content" : "Not bad!", "author" : "Chuliuxiang" } ] }
5、删除
删除comments中author=Luxh的记录
db.posts.update({},{$pull:{"comments":{"author":"Luxh"}}}) 结果如下: { "_id" : ObjectId("5388162dfc164ee1f39be37f"), "title" : "Java Example", "content" : "This is a example for Java!", "comments" : [ { "content" : "Not bad!", "author" : "Chuliuxiang" } ] }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。