猫鼬使用 findOneAndUpdate 并仅返回数组中的更新元素

我有以下问题:


  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 个元素,加载所有内容的效率非常低,不是吗?


有人知道如何只获取新添加的对象吗?


繁花不似锦
浏览 76回答 1
1回答

郎朗坤

不幸的是没有选择findOneAndUpdate您可以projection对原始文档进行操作,但不能对更新后的文档进行操作findOneAndUpdate我认为没有简单有效的方法可以做到这一点。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript