node.js - 如何通过键获取 mongo 集合的子元素?

标签 node.js mongodb key mongoose mongodb-query

我有一个如下所示的集合用户:

{
_id: myid,
name : 'blabla',
ia : {
       [0]-> 'an id',
       [1]-> 'a second id'
      }
}

我只想拥有我的第一个 ia id,所以我尝试了类似的方法:

User.find({ _id: id, ia :{ key : indexia} }, ['ia']).populate('ia').run(rendu);

其中 id= myid,indexia=0。

如果我不放那部分:“ia:{key:indexia}”我会得到所有的ia...但我只想要一个。

希望我说清楚了。 谢谢

最佳答案

MongoDB find() 命令旨在匹配整个文档。

当您运行以下查询时

{ _id: id, ia :{ key : indexia} }

...这意味着“其中 _id 等于 idia 等于对象 {key:0} 。这可能不是您想要的。

If i don t put that part : " ia :{ key : indexia}" i get all my ia... but i want only one.

听起来您想返回给定文档的一部分。其文档是 here 。在你的情况下,它看起来像这样:

find({ _id: id}, { 'ia.0' : 1 })

find 的第一部分将查找文档。第二部分将返回特定字段。

关于node.js - 如何通过键获取 mongo 集合的子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759925/

相关文章:

javascript - 如何在NODEJS中显示来自多个文件的JSON数据

javascript - mongoDB 连接(通过 Node.js 驱动程序)没有给我控制台日志消息

php - 对多个单独的 PHP 数组进行排序并保持键同步

javascript - node.js - 查找 require()ing 模块的路径

session - 如何在 Node.js 中管理 session

javascript - 为什么我在进行突变时会收到 "Cannot return null for non-nullable field"错误?

javascript - 找不到超时错误的 mongodb Node 游标

javascript - 在nodejs中以组形式检索数据

javascript - 使用 javascript 将键关联到没有键的 JSON 数组

mysql - 即使外键为空,如何获取结果集?