我需要执行以下查询:
db.collection.find({}).forEach(function (doc) { doc.records.forEach(function (record) { if (record.user.email.includes("example.com") || record.user.email.includes("example.co.uk")) { record.user.internal = true; } else { record.user.internal = false }}); db.collection.save(doc); });
由于它是一个双嵌套的forEach循环,是否有一种方法可以计算出它将遍历数据库中所有文档中的所有records
的迭代次数?我尝试使用count()
,但似乎不适用于forEach()
。
答案 0 :(得分:0)
mongo shell支持javascript,因此您可以引入变量并在循环中对其进行递增。
var count=0 //variable to hold the number of iterations.
db.collection.find({
}).forEach(function(doc){
doc.records.forEach(function(record){
if(record.user.email.includes("example.com")||record.user.email.includes("example.co.uk")){
record.user.internal=true;
}else{
record.user.internal=false
}
});
db.collection.save(doc);
count++;
});
print(count)