我有一个包含大约200M +文档的Mongo DB。每个文件都有一个"名称"字段(索引),它是一个字符串和一个"项目"字段(未索引),它是一个整数数组。数组的大小范围为1到100。
假设我有一个包含大约1M名称的txt文件。我需要创建另一个包含" items"的txt文件。对于每个1M名称。
选项:
$in
运算符查询数据库。稍后逐个遍历文档。最有效的方法是什么?
答案 0 :(得分:1)
如果不尝试和分析,这很难回答。
由于数组较小并且假设每个名称都会被找到,因此以自然顺序对数据库进行强力扫描甚至可能比您建议的任何选项都快。
使用并行扫描(http://docs.mongodb.org/manual/reference/command/parallelCollectionScan/),您可以遍历所有文档;您可以轻松地将1M名称保存在内存中,并且大约每200条记录就会找到一个匹配项来写入输出文本文件。