我正在尝试打印集合中的所有数据,一些研究表明最好的方法是
DB.collection('users').find({}).each( (err, i) => {
console.log(i);
});
哪个好,但是在这个循环之后运行一个console.log会事先打印出来,并且我需要在返回所有项目后运行一些东西。
如果我可以一次检索所有文档,那将解决我的问题,否则我需要确定此循环何时完成,然后运行一些代码来处理结果。
答案 0 :(得分:1)
由于MongoDB API没有直接映射到预期的Node概念,所以需要花点时间才能弄清楚。
无论如何,MongoDB的find方法返回cursor object。事实上,这个游标对象实现了each
(以及toArray
等其他有用的方法。)
但是,callback需要两个参数,而不只是一个。 [编辑:问题在回调中只有一个参数,OP的转录错误]
DB.collection('users').find({}).each( (error, i) => {
console.log(i);
});
它的Node约定,回调的第一个参数是一个错误对象,用于错误处理目的。接下来的参数是您的实际数据 - 在本例中是来自Mongo的记录。