我有一个如下所示的集合用户:
{
_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
等于 id
且 ia
等于对象 {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/