如何在排序集合中_id后获取n个文档



我想对具有排序的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 一起使用,并将批处理大小设置为该批处理中所需的文档数。

最新更新