我找不到任何记录在案的文件。默认情况下,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);
慕雪6442864
TA贡献1812条经验 获得超5个赞
为了获得最后的N条记录,您可以执行以下查询:
db.yourcollectionname.find({$query: {}, $orderby: {$natural : -1}}).limit(yournumber)
如果您只想要最后一条记录:
db.yourcollectionname.findOne({$query: {}, $orderby: {$natural : -1}})
注意:您可以使用集合中的其中一列来代替$ natural。
- 3 回答
- 0 关注
- 3499 浏览
添加回答
举报
0/150
提交
取消