2012-08-12 110 views
1

鑑於以下數據偏移:查詢子文檔與MongoDB中

{ 
    _id: '123', 
    name: 'Foobar', 
    friends: [ 
    { name: 'a' }, 
    { name: 'b' }, 
    { name: 'c' }, 
    { name: 'd' }, 
    { name: 'e' } 
    ] 
} 

有沒有一種方法來查詢的MongoDB與偏移返回friends列表 - 例如跳過數組中的前兩個朋友('a'和'b')並只返回'c','d'和'e'?

我試過使用$slice,但它似乎也需要「限制」,例如,

db.users.findOne({ _id: '123' }, { friends: { $slice: [2,-1] } }) 

這將無法正常工作,因爲「限制」(-1在上面的例子)必須是一個正整數。

回答

2

這是不是非常優雅,但只是提供一個極限值大到足以有效地沒有限制:

db.users.findOne({ _id: '123' }, { friends: { $slice: [2,1000000000] } })