【发布时间】:2021-07-14 15:58:38
【问题描述】:
我有一个包含嵌套对象的数组。如果消息是“你好”,我想把它改成“你好”。这是我的数组:
[{
name : "name",
email : "email",
conversation : [
{
message : "Hi",
seenBy : "karen"
},
{
message : "Hi",
seenBy : "leo"
},
{
message : "Goodbye",
seenBy : "mark"
}
]
},
{
name : "name",
email : "email",
conversation : [
{
message : "Hi",
seenBy : "karen"
},
{
message : "Listen",
seenBy : "leo"
},
{
message : "Sit",
seenBy : "mark"
},
{
message : "Hi",
seenBy : "mark"
}
]
}]
这是我试过的:
db.updateMany({ conversation: { $elemMatch: { message: "Hi" } } },
{ $set: {"items.$[].message": "Hello" }},
{multi: true}
)
但它会将所有消息更新为“Hello”,即使消息不是“Hi”
【问题讨论】:
标签: mongodb mongoose mongodb-query aggregation-framework