find
Ergebnisse können nur Inhalte aus den Dokumenten selbst enthalten, während aggregate
kann neue Werte projizieren, die aus dem Inhalt des Dokuments abgeleitet werden (wie die Länge eines Arrays). Deshalb müssen Sie aggregate
verwenden dafür, obwohl Sie nur ein einziges Dokument erhalten.
Post.aggregate([{$match: {postId: 5}}, {$project: {upvotes: {$size: '$upvotes'}}}])
Einzige Ausnahme ist $meta
Projektionsoperator, um einen $text
zu projizieren Punktzahl des Abfrageergebnisses.