sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb Aggregation Framework | Gruppere over flere værdier?

OK, så løsningen er at angive en samlet nøgle for _id værdien. Dette er dokumenteret her som:

Du kan angive et enkelt felt fra dokumenterne i pipelinen, en tidligere beregnet værdi eller en samlet nøgle, der består af flere indgående felter.

Men det definerer faktisk ikke formatet for en samlet nøgle. Ved at læse den tidligere dokumentation her, så jeg, at den tidligere collection.group-metode kunne tage flere felter, og at den samme struktur bruges i den nye ramme.

Så for at gruppere over flere felter kan du bruge _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. MongoDB $isoWeek

  2. Opgradering til ClusterControl Enterprise Edition

  3. Hvad er den bedste måde at håndtere global forbindelse af Mongodb i NodeJs

  4. Mongoose Unikke værdier i indlejret array af objekter