MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Ramy agregacji Mongodb | Grupować wiele wartości?

OK, więc rozwiązaniem jest określenie klucza agregującego dla wartości _id. Jest to udokumentowane tutaj jako:

Możesz określić pojedyncze pole z dokumentów w potoku, wcześniej obliczoną wartość lub klucz zbiorczy złożony z kilku pól przychodzących.

Ale w rzeczywistości nie definiuje formatu klucza agregującego. Czytając tutaj wcześniejszą dokumentację, zauważyłem, że poprzednia metoda collection.group mogła przyjmować wiele pól i że ta sama struktura jest używana w nowym frameworku.

Tak więc, aby pogrupować wiele pól, możesz użyć _id : { success:'$success', responseCode:'$responseCode', label:'$label'}

Jak w:

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. Wyjaśnienie SQL NULLIF()

  2. Projektuj pierwszy element w tablicy do nowego pola (agregacja MongoDB)

  3. Dlaczego MongoDB nie używa przecięcia indeksu?

  4. Utwórz indeks tekstowy symboli wieloznacznych w MongoDB

  5. przekonwertuj datę iso na znacznik czasu w zapytaniu mongo