2016-12-20 32 views
0

所以,如果我有這樣的事情:MongoDB中查找基於_id和集合陣列中的一個關鍵

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

所以,如果我想部分[0],是有可能的做到這一點的發現?

因此,像:

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

我知道上面是錯誤的,但我不知道它是否更有效地做好找到正確的,如果可能的(標準與對象/數組的鍵),或簡單地做了廣泛的查找,並從那裏(即使用標準而沒有對象/文件。

回答

1

您可以使用$project$arrayElemAt拿到的第一個元素數組中

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

如果您想從零件陣列中獲得0索引元素,您可以用這種方式寫入

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