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

Agregacja na poziomie miesiąca i roku, znajdź również średnią w MongoDB

  • $objectToArray konwertuj data obiekt do formatu klucz-wartość tablicy
  • $filter do iteracji pętli powyższej przekonwertowanej tablicy
  • sprawdź $and warunki
  • $toDate aby uzyskać data od daty ciągu
  • $month aby wybrać miesiąc od daty i $year wybrać rok
  • $in sprawdź, czy miesiąc jest w tablicy miesięcy, a rok w tablicy lat
  • $arrayToObject przekonwertuj z powrotem na obiekt z tablicy klucz-wartość
var years = [2021];
var months = [5];
db.collection.aggregate([
  {
    $project: {
      data: {
        $arrayToObject: {
          $filter: {
            input: { $objectToArray: "$data" },
            cond: {
              $and: [
                { $in: [{ $year: { $toDate: "$$this.k" } }, years] },
                { $in: [{ $month: { $toDate: "$$this.k" } }, months] }
              ]
            }
          }
        }
      }
    }
  }
])

Plac zabaw




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb nie może przeszukiwać dokumentu podrzędnego według identyfikatora (zwraca wartość null)

  2. mongodb jak zapytać ciąg sumy?

  3. Jak utworzyć indeks o określonej nazwie w MongoDB?

  4. Jak wdrożyć MongoDB w Heroku

  5. MongoDB Update element tablicy (dokument z kluczem), jeśli istnieje, w przeciwnym razie push