sql >> Databáze >  >> NoSQL >> MongoDB

Mongodb Agregation Framework | Seskupit více hodnot?

Dobře, řešením je tedy zadat agregační klíč pro hodnotu _id. Toto je zde zdokumentováno jako:

Můžete zadat jedno pole z dokumentů v kanálu, dříve vypočítanou hodnotu nebo souhrnný klíč složený z několika příchozích polí.

Ale ve skutečnosti nedefinuje formát pro agregační klíč. Při čtení dřívější dokumentace zde jsem viděl, že předchozí metoda collection.group mohla zabírat více polí a že v novém rámci je použita stejná struktura.

Chcete-li seskupit více polí, můžete použít _id : { success:'$success', responseCode:'$responseCode', label:'$label'}

Jako v:

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. Je toto platné použití ServiceStack Redis?

  2. Seskupení podle hodnot a podmínek

  3. Jak mohu změnit velikost limitované kolekce mongodb bez ztráty dat?

  4. Jak provádět operace aktualizace v GridFS (pomocí Javy)?