如何在 mongoDB 中获取最后 50 个文档? [复制]

Posted

技术标签:

【中文标题】如何在 mongoDB 中获取最后 50 个文档? [复制]【英文标题】:How can I get last 50 documents in mongoDB? [duplicate] 【发布时间】:2011-12-05 00:14:54 【问题描述】:

如何在 mongoDB 中获取最后 50 个文档?

我有一个由

制作的收藏
db.createCollection("collection",capped:true, size:300000);

来自这个“收藏”

我想要最后 50 个文档而不是前 50 个文档。

我知道我可以使用

获得前 50 个文档
db.collection.find().limit(50);

但是我怎样才能得到最后 50 个文档呢?

这可以简单地使用 MongoDB API 来完成,还是我应该通过编程来实现?

【问题讨论】:

***上还有一个相关问题:***.com/questions/4421207/…希望对你有帮助。 【参考方案1】:

这应该做的事情:

db.collection.find().sort($natural: -1).limit(50);

【讨论】:

【参考方案2】:

可以使用此查询查看最近添加的 N 条记录,从最近到最近:

db.collection.find().skip(db.collection.count() - N)

你的情况是 50

db.collection.find().skip(db.collection.count() - 50)

【讨论】:

【参考方案3】:

您需要 mongo 集合中的最后 50 个文档,所以这是查询

db.collection('collectionName').find().sort($natural: -1).limit(50);

// sort($natural: -1) for the last fields (desecnding)
// limit(50) because you need only 50 fields 

【讨论】:

以上是关于如何在 mongoDB 中获取最后 50 个文档? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MongoDB 集合中获取具有匹配键的最后 N 个元素

MongoDB:如何使用 _id 获取集合中的最新文档?

Mongodb聚合:获取引用的文档字段值

MongoDB:如何在 100 个集合中找到 10 个随机文档?

MongoDB:如何在 100 个集合中找到 10 个随机文档?

如何使用Java从mongodb获取最后插入的N条记录?