Как рассчитать количество итераций при использовании двойного вложенного forEach в оболочке Mongo? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть следующий запрос, который мне нужно выполнить:

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().

1 Ответ

0 голосов
/ 17 декабря 2018

Оболочка mongo поддерживает 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)
...