为了向用户显示最新的10条新闻我的应用程序从收集新闻中获取所有新闻,然后我在文档的日期字段中对它们进行排序并将它们显示在前10位。
当我收到100-1000新闻时,这很好。现在收集的新闻越来越多了。我想获取t(可以是20,50或100)最新消息(可以从日期字段中找出或基于最新的t插入文档,如果支持这样的话)
有没有办法在MongoDB中实现这一点。它主要是为了提高find的性能?
注意我不是在谈论获取任何10个文档。我具体关注最后10(t)条目。
答案 0 :(得分:0)
db.news.find().sort({timeField : 1}).limit(10);
如果你有一些时间戳字段
db.news.find().sort({$natural : -1}).limit(10);
如果您想要基于最新插入的
答案 1 :(得分:0)
很多浏览后我发现排序和限制是我需要的。很少有事情要记住。排序使用mongodb中的索引很好,如果你确定需要对字段进行排序,那么最好创建一个可以提高性能。还要确保排序的大小限制取决于可用的RAM。排序和限制的顺序无关紧要。如上所述,$ natural是有助于对mongodb中插入数据的顺序进行排序的字段。