MongoDB按对象ID在数组中查找一个文档

我只能得到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行为是返回的第一个文档在那里photoid比赛。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在一个字段中按数组查找mongodb中的文档?

MongoDB $查找一个文档的对象数组

在数组中查找上一个对象

在数组数组中按 id 查找对象的索引

MongoDB –按对象数组中的ID数组查找所有文档

在数组Ramda中按ID查找对象

查找在数组中包含特定值但不是最后一个元素的文档

MongoDB:在文档中查找一个元素,该元素包含一个带有数组的子对象的对象

在数组的一个属性上按字母顺序对数组中的对象进行排序

在嵌套对象的数组字段中按ID查找子文档

在数组中查找下一个较低的值的对象

在数组中查找元素告诉我参数必须是一个对象

在数组中查找/替换对象并添加一个键 Javascript

我有一个ID数组,如果没有,则需要更新对象文档mongodb中数组中的匹配对象,然后插入

Mongoose / MongoDB - 在另一个文档中按数组查询

Mongodb:按数组最后一个元素中的值对文档进行排序

如何在 MongoDB 中查找包含一个或多个搜索数组元素的文档?

在数组中查找第一个

C ++在数组中查找一个整数

Mongodb 使用 $lookup 查找给定 _id 属于哪个对象(外部字段是一个数组)

按 ID 在嵌套数组中查找单个记录并根据 MongoDB 中的另一个嵌套数组进行排序

如何使用LINQ to MongoDb在文档中另一个数组内部的数组中查找和推送元素

MongoDB - 在数组字段中查找文档的数组索引

反应本机在数组中给对象一个名称

在另一个数组内的JavaScript对象数组中按属性查找对象

mongodb / mongoose findMany-查找ID在数组中列出的所有文档

MongoDB查询包含至少一个在数组中指定的值之一的文档

在数组中查找唯一的对象

查找一个mongodb文档,该文档的字段值与输入数组的某项匹配