如何获得一个蒙古collections的孩子的关键?
我有一个像这样的收集用户:
{ _id: myid, name : 'blabla', ia : { [0]-> 'an id', [1]-> 'a second id' } }
我想只有我的第一个ID的ia,所以我尝试了这样的事情:
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}
” 。 这可能不是你想要的。
如果我不把这部分:“ia:{key:indexia}”我得到我所有的ia …但我只想要一个。
这听起来像你想要返回一个给定的文件。 这里的文档就在这里 。 在你的情况下,它会看起来像这样:
find({ _id: id}, { 'ia.0' : 1 })
查找的第一部分将find该文档。 第二部分将返回特定的字段。
感谢您的帮助像这样的工人:
User.find({ _id: id }).only('ia').slice('ia', indexia, 1).populate('ia').run(rendu);
唯一('ia')不工作,但不是一个大问题。
您的collections似乎有架构:
{ "_id" : "id", "ia" : ["id1","id2","id3"], etc. }
在这种情况下,查询“ia”字段的第一个“id”将是:
find({}, { "ia" : {$slice:1 } })
你可以在这里阅读更多关于$ slice操作符 Mongoose在查询页面上logging对$ slice操作符的支持。 希望这可以帮助!