zoukankan      html  css  js  c++  java
  • Mongo对内嵌文档的CRUD

    {
      "_id" : ObjectId("5706032acd0a6194868cf53e"),
      "list" : {
        "age" : 22.0,
        "name" : "qiaoansheng"
      },
      "BookS" : [{
          "bookName" : "在绝望中寻找希望"
        }]
    }
    

    现在数据库中有这么一个文档,下面就是对他进行一系列的增删改查

    我需要在list中再加一个key  school

    db.ansheng.update({"_id":ObjectId("5706032acd0a6194868cf53e")},{"$set":{"list.school":"驻马店第一高级中学"}})

    执行完成后结果如下

    {
      "_id" : ObjectId("5706032acd0a6194868cf53e"),
      "list" : {
        "age" : 22.0,
        "name" : "qiaoansheng",
        "school" : "驻马店第一高级中学"
      },
      "BookS" : [{
          "bookName" : "在绝望中寻找希望"
        }]
    }
    View Code

    {
      "_id" : ObjectId("5706032acd0a6194868cf53e"),
      "list" : [{
          "age" : 13.0,
          "name" : "张三",
          "school" : "驻马店市第一小学"
        }, {
          "bookName" : "在绝望中寻找希望",
          "money" : 188.0
        }, {
          "age" : 23.0,
          "name" : "隔壁老王",
          "cshool" : "家里蹲大学"
        }],
      "BookS" : [{
          "bookName" : "在绝望中寻找希望"
        }],
      "aaaaa" : 20.0
    }

    现在有上面的这一个文档,对list中的数据进行一些列的修改

    $inc  可以用来修改 值类型的数据,不能修改长字符串类型的数据

    db.ansheng.update({"aaaaa":20},{"$inc":{"list.0.age":2}})

    db.【对应的表】.update(【查询参数】,{"$inc":{"list.【这个集合的下标】.【需要修改的字段名称】":2}})

    根据 name 修改 隔壁老王 的年龄

    db.ansheng.update({"list.name":"隔壁老王"},{"$inc":{"list.$.age":100}})

    这种方法只会修改第一个匹配到的数据,如果这个集合中还有一个 隔壁老王 则它的age是不会修改的

    db.nqwd.find({"books.name":"语文"})//可以匹配到内嵌文档中 包含语文的所有数据
    当我需要找到 name为语文并且money为200的数据
    db.nqwd.find({"books.name":"语文","books.money":200})或者
    db.nqwd.find({books:{"$elemMatch":{name:"语文",money:200}}})

  • 相关阅读:
    解决使用git出现 The file will have its original line endings in your working directory
    SpringBoot集成flowable碰见DMN不能初始化
    CF268D Wall Bars
    CF1327F AND Segments
    P2900 [USACO08MAR]Land Acquisition G
    CF279B Books
    CF859E Desk Disorder
    CF1147B Chladni Figure
    CF1147E Rainbow Coins
    P3565 [POI2014]HOT-Hotels
  • 原文地址:https://www.cnblogs.com/ansheng/p/5442597.html
Copyright © 2011-2022 走看看