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.