更新数组中的多个元素

时间:2018-07-09 11:38:21

标签: node.js mongodb mongoose

我有一个带有嵌套聚合的文档,我想将所有属性全部设置为true。我已经尝试过使用$ set的几种方法,但是无法更新它。 如何实现?

{
"_id" : ObjectId("5b4347734e69052e544da67e"),
"providerId" : ObjectId("5b4242b9d8ff1b0020daab34"),
"aggregations" : [ 
    {
        "startTime" : "2012-01-01T00:00:00Z",
        "endTime" : "2012-03-01T00:00:00Z",
        "quantity" : 0,
        "full" : false
    }, 
    {
        "startTime" : "2012-01-01T00:00:00Z",
        "endTime" : "2012-03-01T00:00:00Z",
        "quantity" : 0,
        "full" : false
    }
],
"__v" : 0

}

1 个答案:

答案 0 :(得分:0)

您可以尝试使用$[] The all positional运算符来更新数组中的多个文档

db.collection.update(
  { },
  { "$set": { "aggregations.$[].full": true }}
)

,如果您想增加

db.collection.update(
  { "aggregations.full": false },
  { "$inc": { "aggregations.$.quantity": 2 }}
)