find
resultaten kunnen alleen inhoud uit de documenten zelf bevatten, terwijl aggregate
kan nieuwe waarden projecteren die zijn afgeleid van de inhoud van het document (zoals de lengte van een array). Daarom moet je aggregate
. gebruiken hiervoor, ook al krijgt u maar één document.
Post.aggregate([{$match: {postId: 5}}, {$project: {upvotes: {$size: '$upvotes'}}}])
Enkele uitzondering is de $meta
projectie-operator om een $text
. te projecteren score van het zoekresultaat.