Mongoose,在文档数组中查找项目

los*_*ion 4 mongoose node.js

所以我通过mongoose的id查询了一个特定的文档.该文档包含一系列项目.此列表将始终非常小(少于10个项目).我想知道是否有办法从阵列中获取特定项目.

Example doc:
{
   _id: 1,
   name: 'some name,
   items: [{
      id: 23,
      name: 'item name 23'
   },{
      id: 24,
      name: 'item name 24'
   }]
}
Run Code Online (Sandbox Code Playgroud)

从mongoose docs我可以得到items数组:

doc.get('items')
Run Code Online (Sandbox Code Playgroud)

从那里我可以迭代数组并找到我想要的东西,这没什么大不了的.如果框架中提供了这个,就不要重新发明轮子.

Leo*_*rdo 12

我认为它会起作用.

Document.findById({docId, 'items.id': 'yourId'}, {'items.$': 1}, function(err, item){

}
Run Code Online (Sandbox Code Playgroud)

  • If it worked I think you could check it as accepted answer. Thanks (4认同)