MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Невалиден оператор „$size“ при агрегиране

Причината е, че $size операторът за агрегиране на масиви е нов в MongoDB 2.6 и вие всъщност използвате MongoDB 2.4.

Предлагам ви да надстроите вашия MongoDB сървър поне до 3.0. Но ако по някаква причина не искате да надстроите сега, ще трябва да $unwind масивът "players" и $group от "_id", след което върнете броя чрез $sum акумулаторен оператор.

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB 2.4.1 вече е наличен в ScaleGrid

  2. MongoDB Cloud Deployment - High TTFB

  3. Възможно ли е изравняване на заявката за резултат на MongoDB?

  4. Търсите начин да върнете документи от друга колекция въз основа на набор от друга, MongoDB

  5. mongodb regex не работи