在 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] } })

这是行不通的,因为"limit"(-1在上面的例子中)需要是一个正整数。

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

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

最新更新