1

给定以下数据:

{
  _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在上面的例子中)需要是一个正整数。

4

1 回答 1

2

它不是非常优雅,但只是提供一个足够大的极限值,实际上不是极限:

db.users.findOne({ _id: '123' }, { friends: { $slice: [2,1000000000] } })
于 2012-08-12T16:31:47.543 回答