1
我有這個服務器端JS腳本:爲什麼這個MongoDB循環執行的次數比預期的多?
// Run processNames on all rows in cities
var cur = db.cities.find();
cur.immortal = true;
var j = 0;
var total = cur.count();
cur.forEach(function(obj) {
processNames(obj);
if (j % 100000 === 0) {
print(j + "/" + total + " cities processed");
}
j++;
});
print("Completed load: " + j + " cities processed");
在輸出中,我看到:
...
4800000/3411205 cities processed
4900000/3411205 cities processed
5000000/3411205 cities processed
5100000/3411205 cities processed
5200000/3411205 cities processed
5300000/3411205 cities processed
5400000/3411205 cities processed
5500000/3411205 cities processed
這怎麼可能發生?遊標僅返回3411205個文檔,但forEach循環正在執行超過500萬次。這是怎麼回事?