我有以下问题:
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个元素,那么加载所有内容的效率就太低了吗?
有人有一个想法如何只获取新添加的对象?
答案 0 :(得分:1)
不幸的是,findOneAndUpdate
没有选择
您可以使用projection
在原始文档上执行findOneAndUpdate
,但不能在更新后的文档上执行{p}
我认为没有简单有效的方法可以做到这一点。