MongoDB:使用 mongosh cursor.forEach() 时可能获取 "element" /iteration 的索引?



我习惯于以array.forEach((elem, i) => ...)的方式使用ES5array.forEach(),这样我就可以访问索引。

通过cursor.forEach((elem, i) => ...)在MongoDb的游标上做同样的事情是行不通的(这是有道理的,因为它不是一个数组(。在这种情况下,我没有索引。

是否有一种内置的方法来获得";索引";当使用cursor.forEach()时?

MongoDB游标.forEach((文档在这里相当稀疏。

注意:我知道我可以做cursor.toArray().forEach(),并用我通常的方式获得索引。我在想,如果我已经可以获得一个";索引"/不过,迭代次数直接显示在光标上

db.collection.find().forEach((doc, i) => {
if ((i == 0) || (i % 50 == 0)) {
console.log(`we are here: ${i}`). // nothing gets logged to console...
}
})

您可以通过使用一个额外的变量来携带索引来实现它

let i = 0;
db.collection.find().forEach(doc => {
if ((i == 0) || (i % 50 == 0)) {
console.log(`we are here: ${i}`)    
}
i++;
})

这将是最佳的

最新更新