我的用户模型具有以下形状:
{
name: "Some User",
events: [{title: "String", count: 1}]
}
每次用户加载我的应用程序时,我都希望遍历每个数组并执行计算。为简单起见,在此代码段中,我尝试将计数值设置为10000。但是,出现此错误:
user.events.updateOne不是函数。
这是我的端点代码:
user.events.forEach((e, i) => {
user.events.updateOne(
{ _id: e._id.toString() },
{ $set: { count: 10000 } }
);
});
});
我在做什么错了?
答案 0 :(得分:0)
events
对象的user
属性是一个数组。而且您的数组没有这样的功能upadteOne()
。如果要修改事件,可以在事件上使用map
函数来更改其值。例如:
user.events.map((event) => {
// we change something in the event.
event.title += "?"
event.count = 10000
// we are returning the updated event, so it can be modified in the original array
return event;
});
// now that each event has been modified, we can save the user.
user.updateOne();
答案 1 :(得分:0)
user.events.map((event) => {
event.title = event.title;
event.count = 10000
return event;
});
user.update({_id: user._id }, { $set: { events: user.events });