【发布时间】: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()将处理的序列的顺序吗?
标签: javascript mongodb foreach mongo-shell