Lý do là vì $ size
toán tử tổng hợp mảng là mới trong MongoDB 2.6 và bạn thực sự đang chạy MongoDB 2.4.
Tôi khuyên bạn nên nâng cấp máy chủ MongoDB của mình lên ít nhất 3.0. Nhưng nếu vì lý do nào đó mà bạn không muốn nâng cấp ngay bây giờ, bạn sẽ cần $ unwind
mảng "trình phát" và $ group
bằng "_id" rồi trả về số lượng bằng cách sử dụng $ sum
toán tử tích lũy.
heh = list(db.events.aggregate(
[
{"$match": {"status": 'start'}},
{"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
{"$unwind": "$players"},
{"$group": {"_id": "$_id", "Count": {"$sum": 1}}},
]))