find kết quả chỉ có thể bao gồm nội dung từ chính tài liệu, trong khi aggregate có thể chiếu các giá trị mới bắt nguồn từ nội dung của tài liệu (như độ dài của mảng). Đó là lý do tại sao bạn cần sử dụng aggregate cho điều này, mặc dù bạn chỉ nhận được một tài liệu duy nhất.
Post.aggregate([{$match: {postId: 5}}, {$project: {upvotes: {$size: '$upvotes'}}}])
Một ngoại lệ duy nhất là $meta
toán tử phép chiếu để chiếu một $text điểm của kết quả truy vấn.