const collect = [];
req.body.product.forEach(function(entry) {
mongoClient.connect(databaseServerUrl, function(err, db) {
let testCollection = db.collection('Tests');
testCollection.find({Product: entry}).toArray((err, docs) => {
let waiting = docs.length;
docs.forEach(function (doc) {
collect.push(doc);
finish();
});
function finish() {
waiting--;
if (waiting === 0) {
res.send(collect);
}
}
});
db.close();
});
});
這只是取回第一組。例如,如果我的req.body.product數組中有兩個節點。我只是回到第一盤。但我需要從一個Collection中取回所有的東西。res.send after for eachach have finished executed
是不是有一個原因,你不只是在一個查詢中獲得所有結果,例如'.find({$ or:req.body.product.map(entry =>({Product:entry}))})'? –
完美。我喜歡這個。如果你回答了我的問題。我會投票這個答案。謝謝! :) – mkteagle
我已經發布了一個答案。請讓我知道它是否適用於您,因爲我無法真正測試它(並且我不是真正的MongoDB用戶)。 –