首页 > 解决方案 > Mongoose,更新对象数组中的每个值

问题描述

{
  _id: 1,
  name: 'Some event',
  items: [{
     status: 'NEW',
     value: 'one'
  },{
     status: 'NEW',
     value: 'two'
  }]
}

我需要将每个状态更新为 PENDING

这是行不通的(

findOneAndUpdate({ _id: event.id },
{
 $set: {
   'items.$.status': "PENDING",
 },
},
{
  new: true,
  upsert: true,
}),

我需要在没有任何条件的情况下更新每个状态字段的主要思想,因为我已经有了所需的项目,并且它只是在下一步操作之前更新状态。

标签: node.jsmongodbmongoose

解决方案


您可以通过尝试$为所有元素应用参考$[]'items.$[].status': "PENDING",

谢谢@turivishal


推荐阅读