sql >> Base de Datos >  >> NoSQL >> MongoDB

Operador no válido '$tamaño' en agregación

La razón es porque el $size El operador de agregación de matrices es nuevo en MongoDB 2.6 y en realidad está ejecutando MongoDB 2.4.

Le sugiero que actualice su servidor MongoDB a al menos 3.0. Pero si por alguna razón no desea actualizar ahora, deberá $unwind la matriz de "jugadores" y $group por "_id" y luego devolver el conteo usando el $sum operador acumulador.

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