来自mongodb的最新50份文件

时间:2014-09-28 09:08:02

标签: performance mongodb

为了向用户显示最新的10条新闻我的应用程序从收集新闻中获取所有新闻,然后我在文档的日期字段中对它们进行排序并将它们显示在前10位。

当我收到100-1000新闻时,这很好。现在收集的新闻越来越多了。我想获取t(可以是20,50或100)最新消息(可以从日期字段中找出或基于最新的t插入文档,如果支持这样的话)

有没有办法在MongoDB中实现这一点。它主要是为了提高find的性能?

注意我不是在谈论获取任何10个文档。我具体关注最后10(t)条目。

2 个答案:

答案 0 :(得分:0)

这正是limitsort的原因。

db.news.find().sort({timeField : 1}).limit(10);如果你有一些时间戳字段 db.news.find().sort({$natural : -1}).limit(10);如果您想要基于最新插入的

答案 1 :(得分:0)

很多浏览后我发现排序和限制是我需要的。很少有事情要记住。排序使用mongodb中的索引很好,如果你确定需要对字段进行排序,那么最好创建一个可以提高性能。还要确保排序的大小限制取决于可用的RAM。排序和限制的顺序无关紧要。如上所述,$ natural是有助于对mongodb中插入数据的顺序进行排序的字段。