MongoDB更新查询-带有嵌入式查询的文档

时间:2019-04-09 15:03:59

标签: arrays mongodb mongodb-query

我想更新通过某些条件的文档中的值。在我的情况下,数组“ Orders”包含几个对象,每个对象包含特定的对象“ PendingDetails”,这是我要修改的字符串字段“ State”。

标准为:用户名:“ Pablo.Lobo@gmail.com”; PendingDetails.State:“不为空”,“存在”

Document structure

F

预期结果是,PendingDetails.State节中Order中的每个对象至少存在“ 123”且不为空

问题在于值没有改变

1 个答案:

答案 0 :(得分:0)

尝试做

db.getCollection('users').updateMany(
   {
     "Username" : "Pablo.Lobo@gmail.com",
     "Orders": { $elemMatch: { "PendingDetails.State": { $exists: true, $ne: null } } } 
   },
   { $set: { "Orders.$.PendingDetails.$.State" : "123" } }
)