【发布时间】:2020-08-07 03:12:34
【问题描述】:
我有以下问题:
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 个元素,那么加载所有内容的效率非常低,不是吗?
有人知道如何获取新添加的对象?
【问题讨论】:
-
你能试试答案吗?您能否批准它是否有帮助或发布对其他人有帮助或澄清的答案?
-
@Gibbs 找不到。可能会与聚合框架一起使用,但一开始就很好。我用
posts.slice(-1)切掉它 -
我认为直到 4.2 才有支持。如果有支持,我会检查 4.4 并更新答案
-
@Gibbs 很好
标签: javascript mongodb mongoose