sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongodb Aggregation Framework | Gruppera över flera värden?

OK, så lösningen är att ange en aggregerad nyckel för _id-värdet. Detta dokumenteras här som:

Du kan ange ett enstaka fält från dokumenten i pipelinen, ett tidigare beräknat värde eller en aggregerad nyckel som består av flera inkommande fält.

Men det definierar faktiskt inte formatet för en aggregerad nyckel. När jag läste den tidigare dokumentationen här såg jag att den tidigare metoden collection.group kunde ta flera fält och att samma struktur används i det nya ramverket.

Så för att gruppera över flera fält kan du använda _id : { success:'$success', responseCode:'$responseCode', label:'$label'}

Som i:

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. Hur tar man bort ett dokument som refereras av ett id i mongoDB från php?

  2. Hur konverterar man en pymongo.cursor.Cursor till ett dikt?

  3. hur man konfigurerar olika ttl för varje redis-cache när man använder @cacheable i springboot2.0

  4. Sök i MongoDB i en array och sortera efter antal matchningar