簡體   English   中英

mongoose 使用 findOneAndUpdate 並且只返回數組中更新的元素

[英]mongoose use findOneAndUpdate and only return the updated element in array

我有以下問題:

  let post = await User.findOneAndUpdate(
    { _id: USER_ID },
    {
      $push: {
        posts: {
          title,
          content,
          userId: USER_ID,
          titleUrl,
          thumbnail: {
            webp: WEBP_PATH,
            jpeg: JPEG_PATH,
            placeholder: PLACEHOLDER
          }
        }
      }
    },
    { new: true }
  );

這個查詢幾乎可以正常工作。 問題是每當我將一個項目推送到數組時,我都想取回更新的元素。 不幸的是,我得到了包含數組中所有帖子的整個文檔。 當然我可以做類似posts.slice(-1)的事情,但我認為如果我只需要1個元素,那么加載所有內容的效率非常低,不是嗎?

有人知道如何獲得新添加的 object?

不幸的是findOneAndUpdate沒有選項

您可以使用findOneAndUpdate對原始文檔進行projection ,但不能對更新的文檔進行投影

我認為沒有簡單有效的方法可以做到這一點。

暫無
暫無

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

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