我只能得到1张照片objectid
吗?我只需要从1张照片中获取1张照片细节,但是我所获得的是发布的所有照片。
这是我的数据库结构
这是我的代码如下所示:
Post.findOne({
$and: [
{ photo: { $elemMatch: { _id: id } } } ]
}).exec((err, post) => {
if (err) {
return res.status(400).json({ error: err });
}
req.post = post;
console.log(req.post);
next();
});
我在req.post中得到的只是[]。
提前致谢
的$elemMatch
投影算子提供了一种方法,以改变返回的文档,在这里加上find
利用这是第二个参数投影将实现这一点。
Post.find(
{},
{
_id: 0,
photo: { $elemMatch: { _id: id } }
}
);
这将提供具有承诺的精简文档.lean().exec()
:
Post.find(
{},
{
_id: 0,
photo: { $elemMatch: { _id: id } }
}
)
.lean()
.exec();
注: $elemMatch
行为是返回的第一个文档在那里photo
的id
比赛。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句