我試圖找到最快的方式來遍歷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