我想对具有排序的MongoDB集合使用基于游标的分页。
下面是一个示例集合
{
_id: 3,
name: 'aaa'
},
{
_id: 2,
name: 'bbb'
},
{
_id: 1,
name: 'ccc'
}
因此,在我的第一个查询中,我将按升序对集合进行排序name
并将第一个文档限制为 1
{
_id: 3,
name: 'aaa'
}
这是我需要帮助的地方,我现在需要一个查询,它按name
对集合进行排序,并在_id:3
之后返回n
文档,但在排序的集合中。
我需要它返回
{
_id: 2,
name: 'bbb'
}
从本质上讲,它需要查看排序列表,找到我提供的_id,并在该列表之后返回n
文档。
我在聚合管道内操作,我知道我可以使用$group并创建一个包含所有子文档数组的文档,然后使用 $filter。 但这似乎真的很不优雅,我担心性能。
有什么想法吗?
而不是limit
,使用带有 find 的batchsize
选项来获取第一个文档。 命令响应还将包括游标 ID。
然后将该游标 ID 与 getMore 一起使用,并将批处理大小设置为该批处理中所需的文档数。