簡體   English   中英

如何使用 forEach 迭代數組並更新 ZCCADCDEDB567ABAE643E15DCF0974E503Z 中的元素

[英]How to iterate over array with forEach and update element in Mongoose

我的用戶 model 有這個形狀:

{
name: "Some User",
events: [{title: "String", count: 1}]
}

每次用戶加載我的應用程序時,我都想遍歷每個數組並執行計算。 為簡單起見,在此代碼段中,我嘗試將計數值設置為 10000。但是,我收到此錯誤:

user.events.updateOne 不是 function。

這是我的端點代碼:

        user.events.forEach((e, i) => {
          user.events.updateOne(
            { _id: e._id.toString() },
            { $set: { count: 10000 } }
          );
        });
      });

我究竟做錯了什么?

您的user object 的events屬性是一個數組。 而且您的陣列沒有這樣的 function upadteOne() 如果你想修改你的事件,你可以在你的事件上使用map function 來改變它們的值。 前任:

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();
user.events.map((event) => {
    event.title =  event.title;
    event.count = 10000
    return event;
});

user.update({_id: user._id }, { $set: { events: user.events });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM