Der Grund liegt darin, dass $size
Der Array-Aggregationsoperator ist neu in MongoDB 2.6 und Sie führen tatsächlich MongoDB 2.4 aus.
Ich schlage vor, dass Sie Ihren MongoDB-Server auf mindestens 3.0 aktualisieren. Aber wenn Sie aus irgendeinem Grund jetzt kein Upgrade durchführen möchten, müssen Sie $unwind
das „players“-Array und $group
von "_id" und geben Sie dann die Anzahl zurück, indem Sie $sum
Akkumulator-Operator.
heh = list(db.events.aggregate(
[
{"$match": {"status": 'start'}},
{"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
{"$unwind": "$players"},
{"$group": {"_id": "$_id", "Count": {"$sum": 1}}},
]))