首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一次更新中更新两个子阵列

在一次更新中更新两个子阵列
EN

Stack Overflow用户
提问于 2013-02-14 21:39:11
回答 1查看 42关注 0票数 0

是否可以使用一次更新来更新文档的两个子数组(无需检索文档,并使用开放式并发对其进行更新)?

假设我有以下文档:

代码语言:javascript
运行
复制
{ "_id" : 2,
  "arr1" : [
             { "Id" : 10, "Value" : "abc" },
             { "Id" : 20, "Value" : "abc" },
             { "Id" : 30, "Value" : "abc" }, 
             { "Id" : 40, "Value" : "abc" },
             { "Id" : 50, "Value" : "abc" }
           ],
  "arr2" : [
             { "Id" : 12, "Text" : "abc" },
             { "Id" : 22, "Text" : "abc" },
             { "Id" : 32, "Text" : "abc" }, 
             { "Id" : 42, "Text" : "abc" },
             { "Id" : 52, "Text" : "abc" }
           ]
}

我试着这样做,但它似乎没有修改正确的子文档:

代码语言:javascript
运行
复制
db.col.update(
    { "_id": 2, arr1: { $elemMatch: { Id: 30 } }, arr2: { $elemMatch: {Id: 42} } },
    { $set: {
        "arr1.$.Value": "Changed First",
        "arr2.$.Text": "Changed Second"
      }
    })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 22:08:09

在我看来,如果您的数据看起来像这样,您将能够轻松地执行更新:

代码语言:javascript
运行
复制
{ 
  "_id" : 2,
  "arr1" : {
    "10": "abc",
    "20": "abc",
    "30": "abc",
    "40": "abc",
    "50": "abc"

  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14876116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档