使用moongoose for Node.js,我试图遍历“STEPS”数组中的每个对象并将stepid减1。使用下面的这个模式:
"appid": 1,
"steps": [
{
"name": "step4",
"stepid": 4,
},
{
"name": "step5",
"stepid": 5,
}
],
"appname": "myapp"
这是我尝试使用.update的方法:
app.db.models.myApps.update(
{'appid': 1, 'steps.stepid': { $gt: 3 }},
{ $inc: { 'steps.$.stepid': -1 } },
{ multi: true }
);
但我似乎无法让它正常工作。我能够玩弄代码并让它更新,但它只会更新数组中的 1 个对象,而我希望它遍历数组中的每个对象并减少 1。
我应该打破它并首先使用查找然后更新吗?我的老开发人员说要执行一个 for 循环,但我知道这不是使用 node 执行此操作的正确方法。
非常感谢任何帮助或建议!谢谢!