MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Operatore '$size' non valido nell'aggregazione

Il motivo è perché $size l'operatore di aggregazione di array è nuovo in MongoDB 2.6 e in realtà stai eseguendo MongoDB 2.4.

Ti suggerisco di aggiornare il tuo server MongoDB ad almeno 3.0. Ma se per qualche motivo non desideri eseguire l'aggiornamento ora, dovrai $unwind l'array "giocatori" e $group per "_id", quindi restituire il conteggio utilizzando $sum operatore accumulatore.

heh = list(db.events.aggregate(
    [
        {"$match": {"status": 'start'}},
        {"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
        {"$unwind": "$players"},
        {"$group": {"_id": "$_id", "Count": {"$sum": 1}}},
    ]))