我找不到任何记录在案的文件。 默认情况下,find()操作将从头开始获取记录。 如何获取mongodb中的最后N条记录?
编辑:我也希望返回的结果从最近到最近排序,而不是相反。
#1楼
您可以使用sort()
, limit()
, skip()
从任何跳过的值开始获取最后N条记录
db.collections.find().sort(key:value).limit(int value).skip(some int value);
#2楼
可以从此查询中看到最近添加的N条记录(从最近到最近):
db.collection.find().skip(db.collection.count() - N)
如果要以相反的顺序进行操作:
db.collection.find().sort({ $natural: -1 }).limit(N)
如果安装Mongo-Hacker ,则还可以使用:
db.collection.find().reverse().limit(N)
如果您一直不厌其烦地编写这些命令,则可以在〜/ .mongorc.js中创建自定义函数。 例如
function last(N) {
return db.collection.find().skip(db.collection.count() - N);
}
然后从mongo shell中键入last(N)
#3楼
为了获得最后的N条记录,您可以执行以下查询:
db.yourcollectionname.find({$query: {}, $orderby: {$natural : -1}}).limit(yournumber)
如果您只想要最后一条记录:
db.yourcollectionname.findOne({$query: {}, $orderby: {$natural : -1}})
注意:您可以使用集合中的其中一列来代替