Ich habe zwei Sammlungen: Frage und Antwort. Jede Antwort gehört zu einer Frage, also hat eine Antwort ihre "Frage_ID".Mongoosejs Verwendung Versprechen in einer for-Schleife
Ich mag fünf Fragen erhalten, die die meisten Antworten hat:
Answer.aggregate([
{
$group: {
_id: '$question_id',
num_questions: { $sum: 1 },
}
},
{
$sort: {
'num_questions': -1
}
}
]).then(function(answers) {
var result = [];
for(answer of answers) {
Question.findById(answer._id, function(err, question) {
result.push(question);
});
}
console.log(result);
res.json({questions: result});
});
aber mit dem obigen Code, wird mein Ergebnis wegen des Asynchron-Mechanismus null sein.
Wie kann ich es schaffen?
Ein anderes Problem, das ich hatte, mit der Gesamtabfrage, ich kann nur Fragen haben, die mindestens eine Antwort hat. Wie kann ich die Fragen ohne Antwort bekommen?
Ihre Anfrage gibt nur eine Frage zurück. Wie könnte ich fünf bekommen? Vielen Dank ! –
@Trong Lam Phan Redigiert für 5. –
Vielen Dank. Könnten Sie mir bitte mit meiner zweiten Frage helfen? Über einige Fragen, die keine Antwort haben. Wie kann ich sie zeigen? –