小编典典

如何获取mongodb中的最后N条记录?

all

我在任何地方都找不到它的记录。默认情况下,find() 操作将从头开始获取记录。如何获取 mongodb 中的最后 N 条记录?

编辑:我也希望返回的结果从最近到最近,而不是相反。


阅读 161

收藏
2022-03-04

共1个答案

小编典典

如果我理解你的问题,你需要按升序排序。

假设您有一些名为“x”的 id 或日期字段,您会这样做......

。种类()


db.foo.find().sort({x:1});

1 将按升序排序(从最旧到最新),- 1 将按 降序排序(从最新到最旧)。

如果您使用自动创建的 _id 字段,它会嵌入一个日期…所以您可以使用它来订购…

db.foo.find().sort({_id:1});

这将返回从最旧到最新排序的所有文档。

自然秩序


你也可以使用上面提到的自然秩序......

db.foo.find().sort({$natural:1});

同样,根据您想要的顺序使用 1-1 。

使用 .limit()


最后,在进行这种广泛开放的查询时添加一个限制是一种很好的做法,这样您就可以这样做......

db.foo.find().sort({_id:1}).limit(50);

要么

db.foo.find().sort({$natural:1}).limit(50);
2022-03-04