鉴于以下数据:
{
_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] } })
这不起作用,因为“limit”(上例中的-1
)需要是一个正整数。
答案 0 :(得分:2)
它不是非常优雅,但只是提供足够大的限制值,实际上不是限制:
db.users.findOne({ _id: '123' }, { friends: { $slice: [2,1000000000] } })