Mongodb:UpdateMany不更新嵌套数组数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb:UpdateMany不更新嵌套数组数据相关的知识,希望对你有一定的参考价值。
我尝试更新许多数据,但它没有更新。我正在使用这样的命令
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": "derp@gmail.com",
"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
}
答案
你必须使用$[]
全部位置运算符来更新数组中的多个元素
db.transactions.updateMany(
{ "request_by": { "$elemMatch": { "userId": ObjectId("060dcaf49c13e9c380ebfccd") }}},
{ "$set": { "request_by.$[].city": "aaa" }}
)
以上是关于Mongodb:UpdateMany不更新嵌套数组数据的主要内容,如果未能解决你的问题,请参考以下文章