【发布时间】:2019-11-19 09:32:04
【问题描述】:
我有一个包含 115M 文档的 mongo 集合,大小约为 200 GB。
_id 类似于 “bbsr/13/pressure/1573689600000”。最后一个元素是 unix 时间戳。 现在我需要获取 _id :/bbsr/13/pressure/ 的所有文件。或 _id startsWith bbsr/13/pressure。这里,“bbsr/13/pressure”是标识符。
我尝试使用 _id 正则表达式进行分页(跳过和限制),提供所有文档(数量为 330000)大约需要 1 小时。
我尝试了基于范围的查询 {_id={$gte=bbsr/13/pressure/1573689600000, $lt=bbsr/13/pressure/1574121600000}}。即使这样也需要一个多小时。
对于一个标识符来提供两种方法中的所有文档,需要一个多小时。
我想在最多 10 分钟内获取给定标识符的所有文档。
如何高效处理?
我正在使用 java 来获取值。
【问题讨论】:
-
请格式化您的 JSON,使其更具可读性。
-
您能否对集合运行更新以修改数据以使这项工作继续进行?
标签: mongodb indexing mongodb-query database-performance