检索大型固定标识符集的Mongo文档

时间:2014-10-28 23:28:35

标签: mongodb mongodb-query

我有一个包含大约200M +文档的Mongo DB。每个文件都有一个"名称"字段(索引),它是一个字符串和一个"项目"字段(未索引),它是一个整数数组。数组的大小范围为1到100。

假设我有一个包含大约1M名称的txt文件。我需要创建另一个包含" items"的txt文件。对于每个1M名称。

选项:

  • 只需逐个遍历名称,然后根据_id提取项目。
  • 创建"批次"一小组名称(一次说100个)并使用$in运算符查询数据库。稍后逐个遍历文档。
  • 使用某种map-reduce来分解1M名称并同时查询它们。

最有效的方法是什么?

1 个答案:

答案 0 :(得分:1)

如果不尝试和分析,这很难回答。

由于数组较小并且假设每个名称都会被找到,因此以自然顺序对数据库进行强力扫描甚至可能比您建议的任何选项都快。

使用并行扫描(http://docs.mongodb.org/manual/reference/command/parallelCollectionScan/),您可以遍历所有文档;您可以轻松地将1M名称保存在内存中,并且大约每200条记录就会找到一个匹配项来写入输出文本文件。