【问题标题】:How to add fields in array list in mongo db如何在mongodb的arraylist中添加字段
【发布时间】:2021-03-18 14:48:13
【问题描述】:
{
    "_id" : "1",
    "teams" : 
    [ 
        {
            "type" : "local",
            "isEnabled" : "true",
            "names" : 
            [ 
                { "name": "kumar","Nationality":"indian","BirthPlace":"Goa","Age":"U25" },
                { "name": "kannan","Nationality":"indian","BirthPlace":"Kerala","Age":"U25"}
            ]
        },
        {
            "type" : "national",
            "isEnabled" : "true",
            "names" : 
            [ 
                { "name": "kumar","Nationality":"indian","BirthPlace":"Goa","Age":"U25" },
                { "name": "kannan","Nationality":"indian","BirthPlace":"Kerala","Age":"U25"}
            ]
        },
        {
            "type" : "international",
            "isEnabled" : "true",
            "names" : 
            [ 
                { "name": "kumar","Nationality":"indian","BirthPlace":"Goa","Age":"U25" },
                { "name": "kannan","Nationality":"indian","BirthPlace":"Kerala","Age":"U25"}
            ]
        },
    ]
}

我在 mongodb 集合中有多个格式相同的文档。我想将以下行附加到 names 数组中,也仅适用于集合的每个文档中的“type:local”。我尝试了 $push 及其在所有团队数组中的附加,因为我发现难以添加此条件仅适用于 "type":"local"

{ “姓名”:“杰克”,“国籍”:“印度人”,“出生地”:“卡纳塔克邦”,“年龄”:“U25” }

【问题讨论】:

    标签: arrays mongodb mongodb-query mongo-shell robo3t


    【解决方案1】:

    您可以使用positional operator : $[]

    db.collection.update({
      "teams.type": "local"
    },
    {
      $push: {
        "teams.$[element].names": {
          "name": "jack",
          "Nationality": "indian",
          "BirthPlace": "Karnataka",
          "Age": "U25"
        }
      }
    },
    {
      arrayFilters: [
        {
          "element.type": "local"
        }
      ],
      multi: true
    })
    

    试试看here

    【讨论】:

    • 非常感谢 AlexisG。它节省了我的时间。
    • 不客气。您可以将答案标记为已接受以“关闭”问题
    猜你喜欢
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多