MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Operador '$size' inválido na agregação


O motivo é porque o $size O operador de agregação de matriz é novo no MongoDB 2.6 e você está realmente executando o MongoDB 2.4.

Eu sugiro que você atualize seu servidor MongoDB para pelo menos 3.0. Mas se por algum motivo você não quiser atualizar agora, você precisará $unwind a matriz "players" e $group por "_id" e retorne a contagem usando o $sum operador de acumulador.
heh = list(db.events.aggregate(
    [
        {"$match": {"status": 'start'}},
        {"$group": {"_id": "$eventName", "players": {"$addToSet": "$uid"}}},
        {"$unwind": "$players"},
        {"$group": {"_id": "$_id", "Count": {"$sum": 1}}},
    ]))