find резултатите могат да включват само съдържание от самите документи, докато aggregate може да проектира нови стойности, които са извлечени от съдържанието на документа (като дължина на масив). Ето защо трябва да използвате aggregate за това, въпреки че получавате само един документ.
Post.aggregate([{$match: {postId: 5}}, {$project: {upvotes: {$size: '$upvotes'}}}])
Единственото изключение е $meta
оператор за проекция, за да прожектира $text резултат от заявката.