小编Eug*_*ene的帖子

forEach 不会迭代 mongodb 中的所有集合

我需要比较 mongo db 中的两个对象集合。我的 shell 脚本如下所示:

//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]));
})
Run Code Online (Sandbox Code Playgroud)

我在 Robomongo 中执行这个脚本。但我有一个问题。结果,367 项中仅打印了 8 项。Robomongo 没有显示任何错误消息。当我使用

print(item);
Run Code Online (Sandbox Code Playgroud)

在 foreach 内部,一切正常,所有 367 个对象都被打印出来。我还尝试使用 Deep Diff 库进行对象比较,但得到了相同的结果 - 仅打印了 367 个项目中的 12 个项目。

我认为问题出在内存消耗上,但我不知道如何处理它,也不知道为什么 Robomongo 不打印任何错误。

我尝试仅迭代游标,但没有帮助。

为什么 foreach 不能迭代所有项目以及如何修复它?

[更新 …

javascript mongodb robo3t

3
推荐指数
1
解决办法
3157
查看次数

标签 统计

javascript ×1

mongodb ×1

robo3t ×1