更新Mongo中按特定字段排序的数据

时间:2018-03-24 21:52:56

标签: mongodb performance sorting

我在软件工程门户网站上发布此问题而未进行任何测试。这也引起了我的注意,这需要发布在SO上,而不是那里。感谢您的帮助!

我需要Mongo返回按字段值排序的文档。实现这一目标的最简单方法是运行命令db.collectionName.find().sort({field:priority}),但是,我在 1000 文档的虚拟集合上尝试了此方法;它以 22ms 运行。我也尝试在相同的数据上运行db.collectionName.find(),它运行在 3ms ,这意味着Mongo需要时间来排序和返回文档(这是可以理解的)。两个测试都在相同的环境中完成,并通过向查询添加.explain("executionStats")来完成。

我将处理大量数据和并发请求以访问数据库,因此我需要更快地进行查询。我的问题是,有没有办法始终保持数据按数据库中的字段排序,这样我就不必为所有请求反复排序?例如,某种更新命令可以每周对整个数据库进行一次排序?

1 个答案:

答案 0 :(得分:0)

此集合中包含该字段的非唯一索引将提供您之后的结果,并避免内存排序效率低下。