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