相关疑难解决方法(0)

在“更新”操作中使用聚合管道更新数组的元素

设想

对于以下文档,我想更新数组中status特定消息messages的:

[{
    "_id" : ObjectId("6079bab4f297df39a44609cb"),
    "title" : "Test messages of single user",
    "messages" : [ 
        {
            "_id" : ObjectId("6079bab4f297df39a44609cc"),
            "body" : "Test 1",
            "status" : 1
        }, 
        {
            "_id" : ObjectId("6079bab4f297df39a44609cd"),
            "body" : "Test 2",
            "status" : 1
        }, 
        {
            "_id" : ObjectId("6079bcf7c041b00ec4cebb9d"),
            "body" : "Hello I'm Sam",
            "status" : 1
        }
    ]
}]
Run Code Online (Sandbox Code Playgroud)
  1. 更新操作中没有聚合管道的查询会更新单个消息中的状态

在这里运行下面的查询

db.update(
  { 
    "_id": ObjectId("6079bab4f297df39a44609cb"), 
    "messages": { $elemMatch: { _id: ObjectId("6079bcf7c041b00ec4cebb9d") } }
  }, …
Run Code Online (Sandbox Code Playgroud)

arrays nested mongodb mongodb-query

5
推荐指数
1
解决办法
4599
查看次数

标签 统计

arrays ×1

mongodb ×1

mongodb-query ×1

nested ×1