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

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

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

最佳答案

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

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

.sort()


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

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

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

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

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

自然秩序


您也可以使用 Natural Order上面提到...

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);

https://stackoverflow.com/questions/4421207/

相关文章:

authentication - 如何使用用户名和密码保护 MongoDB

mongodb - 检查字段是否包含字符串

mongodb - 查找两个日期之间的对象 MongoDB

macos - Mongod 提示没有/data/db 文件夹

mongodb - 删除 MongoDB 数据库中的所有内容

mongodb - 如何通过shell脚本执行mongo命令?

mongodb - 查找包含特定值的数组的文档

mongodb - 如何重命名 MongoDB 数据库?

mongodb - 仅检索 MongoDB 集合中对象数组中的查询元素

mongodb - 查找数组字段不为空的 MongoDB 记录