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();
});
});
cela ne récupère que le premier ensemble. Si j'ai deux nœuds dans mon tableau de req.body.product par exemple. Je ne récupère que le premier set. Mais j'ai besoin de tout récupérer non seulement d'une collection.res.send après deux forEach ont terminé l'exécution
Y a-t-il une raison pour laquelle vous n'obtenez pas simplement tous les résultats dans une seule requête, par ex. '.find ({$ or: req.body.product.map (entry => ({Product: entrée}))})'? –
Parfait. J'aime ça. Si vous aviez répondu à ma question. Je voterais ceci comme réponse. Merci! :) – mkteagle
J'ai posté une réponse. S'il vous plaît laissez-moi savoir si cela fonctionne pour vous, car je ne pouvais pas réellement le tester (et je ne suis pas vraiment un utilisateur MongoDB). –