1
CSVファイルを出力するために、MongoDBコレクションからデータの配列を作成します。MongoDB、forEach&Promise:forEachループが完了したときを知る方法?
promise
にforEach
を使用し、すべてのレコードが読み込まれたときにresolve
とします。
ただし、以下のコードは機能しません。 promise
は決して解決されません。 if/else
状態のバグがあるようです。 forEach
ループが完了したときを知る別の方法はありますか?
exports.eachRecord = function() {
return new Promise(function (resolve, reject) {
var data = []
mongoClient.connect(process.env.MONGO, function (err, db) {
// Handled connection error
if (err) { return console.log(err) }
db.collection('log').find().forEach(function (doc) {
if (doc !== null) {
console.log(doc.ug)
data.push(doc.ug)
} else {
db.close()
console.log('done!')
resolve(data)
}
})
})
})
}
ありがとうございます。