在Mongo Shell中使用双嵌套foreach时,如何计算迭代数量



我有以下查询我需要执行:

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()不起作用。

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)

最新更新