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

grupuj według dnia/miesiąca i weź średnią ocen z tego dnia/miesiąca w mongo

Aby pogrupować dokumenty według dnia/miesiąca i zwrócić klucz miesiąca w wynikach, musisz najpierw $projekt pola kluczowe do odpowiednich formatów przy użyciu Daty operatorów, w szczególności $ dateToString i $miesiąc operatorów.

Można to zrobić w $projekt etap przed $group krok, ale nie jest to konieczne, ponieważ $grupa potok obsługuje głównie akumulator operatorów.

W poprzednim $group potok, możesz pogrupować dokumenty według sformatowanego klucza daty, agregować przy użyciu $avg operatora i zwróć miesiąc jako liczbę całkowitą z poprzedniego potoku, używając $first operator akumulatora.

Uruchomienie następującego potoku agregacji powinno dać pożądany rezultat:

db.collection.aggregate([
  { "$group": {
    "_id": { 
        "$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" } 
    },
    "average": { "$avg": "$rating" },
    "month": { "$first": { "$month": "$ceatedAt" } },
  } }
]) 


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Logowanie użytkownika nie działa z node.js i mongoose

  2. Dane referencyjne NoSql

  3. MongoDB $concat

  4. Błąd Mongodb:operator pozycyjny nie znalazł dopasowania wymaganego z zapytania

  5. Atomowa aktualizacja MongoDB za pomocą dokumentu „scal”