Mongodb:UpdateMany不更新嵌套数组数据

问题描述 投票:0回答:1

我尝试更新许多数据,但它没有更新。我正在使用这样的命令

db.transactions.updateMany({"request_by.0.userId":"060dcaf49c13e9c380ebfccd"},{$set: {"request_by.0.city":"aaa"}});

结果

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 0 }

我的交易收集数据

{
    "_id": "9e2dfeec3f31db6415108a3d",
    "request_by": [{
        "userId": "060dcaf49c13e9c380ebfccd",
        "email": "[email protected]",
        "tel": "0128371827",
        "name": "Derp the joker",
        "role": "guest",
        "iat": 1545564382,
        "exp": 1545582382
    }],
    "status": "active",
    "invoice": "2018122318410976",
    "created_at": "2018-12-23T11:41:09.203Z",
    "updated_at": "2018-12-23T11:41:09.203Z",
    "__v": 0
}
mongodb
1个回答
0
投票

你必须使用$[]全部位置运算符来更新数组中的多个元素

db.transactions.updateMany(
  { "request_by": { "$elemMatch": { "userId": ObjectId("060dcaf49c13e9c380ebfccd") }}},
  { "$set": { "request_by.$[].city": "aaa" }}
)
© www.soinside.com 2019 - 2024. All rights reserved.