我试图找到最快的方式来遍历MongoDB中的数据。我在收集中有60k个文档,并且我想要remove
全部fields
在每个文档中的值为NULL
。 (从MySQL转移)。我的测试功能只是删除一个字段是:MongoDB迭代
db.collection.find({cc_type:null}).forEach(function(u) {
db.collection.update(u, {$unset:{"cc_name":1}
//some other null-value fields to check
});
然后需要20秒才能完成数据。我究竟做错了什么?另外,我正在使用PHP的MongoDB驱动程序。在PHP中迭代数据而不是使用MongoDB工具更有效率?迭代大量数据并对其进行一些更改(每个文档的不同更改取决于存在的字段)有哪些最佳实践?
我的结论是:通过迭代去除多个字段会导致mongodb重建索引,从而导致严重的性能问题。 – castt 2013-03-29 03:30:49