为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2019-10-14 09:28:33
我找不到任何记录在案的文件。默认情况下,find()操作将从头开始获取记录。如何获取mongodb中的最后N条记录?编辑:我也希望返回的结果从最近到最近排序,而不是相反。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

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


假设您有一些名为“ 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);


查看完整回答
反对 回复 2019-10-14
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

为了获得最后的N条记录,您可以执行以下查询:


db.yourcollectionname.find({$query: {}, $orderby: {$natural : -1}}).limit(yournumber)

如果您只想要最后一条记录:


db.yourcollectionname.findOne({$query: {}, $orderby: {$natural : -1}})

注意:您可以使用集合中的其中一列来代替$ natural。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 3420 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信