zoukankan      html  css  js  c++  java
  • 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"
            }
        ]
    }
  • 相关阅读:
    ASP.NET中的Eval与DataBinder.Eval()方法
    数据库三范式
    某一公司的面试题目
    Gridview样式
    截取字符串代码
    C#文件IO操作
    随机生成验证码
    HTTP 错误 401.2 Unauthorized 由于身份验证头无效,您无权查看此页。 IIS7.0解决办法
    危险字符过滤的类
    asp.net面试题新手必备
  • 原文地址:https://www.cnblogs.com/luxh/p/3760974.html
Copyright © 2011-2022 走看看