MongoDb基于_id和数组中的键查找集合

时间:2016-12-20 04:37:38

标签: javascript mongodb meteor

所以,如果我有这样的事情:

{
_id:'123',
parts: ['One','Two','Three']
}

所以,如果我想要零件[0],是否有可能为此进行查找?

类似于:

db.stories.find({_id:'123', part:{$eq:0}})

我知道上面的内容是错误的,但我想知道如果可能(与对象/数组键相关的标准)进行正确查找是否更有效,或者只是做广泛的查找和去从那里(即使用没有对象/文件的标准。

2 个答案:

答案 0 :(得分:1)

您可以使用$project$arrayElemAt来获取数组中的第一个元素

db.stories.aggregate([
  {
    $match: {_id: '123'}
  },{
    $project: {part: {$arrayElemAt: ['$parts',0]}}
  }
])

答案 1 :(得分:1)

如果你想从parts数组中获得0个索引元素,你可以用这种方式编写

  db.sample.find({ _id : "123" } , { parts : { $slice : [0 , 1] } } )