我需要比較來自mongo db的兩個對象集合。 我的shell腳本是這樣的:forEach不會迭代mongodb中的所有集合
//Both arrays have 367 pretty big objects.
var list1 = db.collection1.find({..condition..}).toArray();
var list2 = db.collection2.find({..condition..}).toArray();
function compare(left, right){
var l = left.data.NP;
var r = right.data.NP;
if(JSON.stringify(l) === JSON.stringify(r)){
return 'Equal';
} else {
return 'Not equal';
}
}
list1.forEach(function(item, index){
print(index, compare(item,list2[index]));
})
我在Robomongo執行這個腳本。 但我有一個問題。結果只有367件產品被打印了8件。 Robomongo沒有顯示任何錯誤消息。 當我用
print(item);
內的foreach,所有工作得很好,並打印的所有367級的對象。此外,我嘗試使用Deep Diff庫進行對象比較,但得到了相同的結果 - 僅打印了367個項目中的12個項目。
我認爲內存消耗的問題,但我不知道如何處理它,以及爲什麼Robomongo不打印任何錯誤。
我試圖迭代只有遊標,但它沒有幫助。
爲什麼foreach不能迭代所有項目以及如何解決它?
[UPDATE 1] i之後提到,如果我在Robomongo運行在剛打開的選項卡腳本它打印102點的元素,但是當我在同一標籤再次運行它只有12打印調查的一段時間。
[UPDATE 2] 我嘗試使用天然蒙戈殼mongo.exe運行腳本,並從印刷元件367得到100,沒有錯誤