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

Mongodb Aggregation Framework | Групиране върху множество стойности?

Добре, така че решението е да посочите обобщен ключ за стойността _id. Това е документирано тук като:

Можете да посочите едно поле от документите в конвейера, предварително изчислена стойност или обобщен ключ, съставен от няколко входящи полета.

Но всъщност не дефинира формата за обобщен ключ. Четейки по-ранната документация тук, видях, че предишният метод collection.group може да заеме множество полета и че същата структура се използва в новата рамка.

Така че, за да групирате в множество полета, можете да използвате _id : { success:'$success', responseCode:'$responseCode', label:'$label'}

Като в:

resultsCollection.aggregate(
{ $match : { testid : testid} },
{ $skip : alreadyRead },
{ $project : {
        timeStamp : 1 ,
        label : 1,
        responseCode : 1 ,
        value : 1,
        success : 1
    }},
{ $group : {
        _id :  { success:'$success', responseCode:'$responseCode', label:'$label'},
        max_timeStamp : { $timeStamp : 1 },
        count_responseCode : { $sum : 1 },
        avg_value : { $sum : "$value" },
        count_success : { $sum : 1 }
    }}
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Услугата mongodb не се стартира

  2. как да групирате в mongoDB и да върнете всички полета в резултат

  3. 6 начина да получите годината от дата в MongoDB

  4. [Инфографика] Сравняване на Cassandra с MongoDB

  5. mongoose рекурсивно попълване