文档
地址:https://mongodb.github.io/node-mongodb-native/3.6/api/Cursor.html#forEach
用法
首先,跟 js 的 forEach 用法不一样。它接收一个迭代函数和回调函数。
传递一个迭代函数,会返回一个promise。我认为这种适用于,外层函数返回值的情况。比如一个导出数据的接口,当查出数据并依次处理数据后,要返回给前端一个文件地址。
export() {
let datas = []
await client
.db(existCl.db.sysname)
.collection(existCl.sysname)
.find()
.forEach(item => {
datas.push(buildData(item, columns))
})
//上面如果不加await,这的datas就是个空数据
console.log(datas)
}
传递两个函数,就会在第一个执行完后,执行回调函数。我认为这种适用于,在回调函数处理完逻辑,比如做个数据库更新数据等。
let datas = []
client
.db(existCl.db.sysname)
.collection(existCl.sysname)
.find(query)
.forEach(
item => {
datas.push(buildData(item, columns)) //按照一定规则格式化数据
},
() => {
console.log(datas) //这里会打印出按照规则处理后的所有数据
// return datas
// 注意:return 是不会起任何作用的,外面是获取不到的。即使在client前面加await。
}
)