【问题标题】:How to update an array of an object in mongoose?如何更新猫鼬中的对象数组?
【发布时间】:2021-12-28 04:52:06
【问题描述】:

如果 indexName 为 'bcd',我想将 isFilter 更新为 true。

attr: [
{
  indexName: 'abc',
  isFilter: false,
},
{
  indexName: 'bcd',
  isFilter: false,
},{
  indexName: 'bcd',
  isFilter: false
}
]

我试过了,

<document>.updateMany({}, 
{ $set : {
   "attr.$[elem].isFilter" : true
} },
{
  arrayFilters: [{
         "elem.indexName" : "bcd"
   }],
  multi: true,
});

我做错了吗?它不工作。

【问题讨论】:

标签: mongodb mongoose mern


【解决方案1】:

使用“attr.indexName”进行搜索查询。 https://mongoplayground.net/p/W50Abcj7zPM

 db.collection.update({
      "attr.indexName": "Mama"
    },
    {
      $set: {
        "attr.$.isFilter": true,
      },
    },
    {
      "multi": true,
      "upsert": false
    })

【讨论】:

  • 它有效,但仅适用于第一次匹配。我希望这适用于数组中的所有对象。
  • 你添加了multi true选项吗?
  • 你也可以使用 updateMany。
猜你喜欢
  • 2020-07-31
  • 2019-09-14
  • 2015-01-13
  • 2022-08-18
  • 1970-01-01
  • 2021-01-12
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
相关资源
最近更新 更多