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();
});
});
Dies ist nur das erste Set zurück. Wenn ich zum Beispiel zwei Knoten in meinem Array von req.body.product habe. Ich bekomme nur den ersten Satz zurück. Aber ich muss alles zurückbekommen, nicht nur aus einer Sammlung.res.send nach zwei forEach beendet die Ausführung
Gibt es einen Grund, warum Sie nicht nur alle Ergebnisse in einer einzigen Abfrage erhalten, z. '.find ({$ oder: req.body.product.map (Eintrag => ({Produkt: Eintrag}))})'? –
Perfekt. Ich mag das. Wenn du meine Frage beantwortet hättest. Ich würde dies als Antwort wählen. Vielen Dank! :) – mkteagle
Ich habe eine Antwort gepostet. Bitte lassen Sie es mich wissen, wenn es für Sie funktioniert, da ich es nicht wirklich testen konnte (und ich bin nicht wirklich ein MongoDB-Benutzer). –