javascript forEach() 函数如何在 mongodb shell 中迭代文档?

Posted

技术标签:

【中文标题】javascript forEach() 函数如何在 mongodb shell 中迭代文档?【英文标题】:How does javascript forEach() function iterate documents in mongodb shell? 【发布时间】:2019-01-03 03:57:24 【问题描述】:

javascript forEach() 函数在 mongodb shell 中是如何工作的?

文档的处理顺序是什么?

例如,假设我有两个大集合,这两个集合应该包含相同数量的文档(注意文档的结构不一定相同),我想迭代第一个,看看是否对于第一个集合中的每个文档,在第二个集合中都有一条记录:

db.MyColl.find().forEach(
    function(aDocument)  
        print("Checking :"+aDocument._MyId)
        var db2 = db.getSiblingDB("mySiblingDb");
        var aDocument2 = db2.MyColl.findOne(_MyId: aDocument._MyId);    
        if (aDocument2 == null)  
           print("Missing document with _MyId: " + aDocument._MyId);
          
    
);

这段代码是否会以相同的顺序迭代文档?

【问题讨论】:

“迭代具有相同序列的文档”是什么意思?您的代码看起来像是在一个集合(集合A)上执行find(),然后尝试findOne() 第二个集合(集合B)上的相应匹配文档。代码中只有一次迭代,即在forEach() 内。我想我不明白你的意图。您是在询问forEach() 将处理的序列的顺序吗? 【参考方案1】:
db.collection.find(query).forEach(function(err, doc) 
  // ...
);

Foreach 返回错误函数作为第一个参数,文档作为第二个参数

【讨论】:

不一定。如果您在回调中提供一个参数,则它是您的项目,而不是错误消息。 fredkschott.com/post/2014/03/… OP指的是mongo shell操作,而不是node.js

以上是关于javascript forEach() 函数如何在 mongodb shell 中迭代文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Nightwatch 测试的自定义命令中添加嵌套函数 javascript - forEach - 循环遍历元素

如何在JavaScript中的.forEach()遍历结束之后执行函数

javascript forEach() 函数如何在 mongodb shell 中迭代文档?

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别

我如何才能激活和关联 slideToggle 函数(使用 JavaScript)仅为我试图在 foreach 循环中显示的一部分?

如何形象地解释 JavaScript 中 map,foreach,reduce 间的区别