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

Grupuj według dnia/miesiąca/tygodnia według zakresu dat

Aby grupować co tydzień, uruchom następujący potok, który głównie używa Operatory agregacji dat aby wyodrębnić części daty:

db.collection.aggregate([
    { 
        "$project": {
            "createdAtWeek": { "$week": "$createdAt" },
            "createdAtMonth": { "$month": "$createdAt" },
            "rating": 1
        }
    },
    {
         "$group": {
             "_id": "$createdAtWeek",
             "average": { "$avg": "$rating" },
             "month": { "$first": "$createdAtMonth" }
         }
    }
])

a dla agregatów miesięcznych zamień kod <>$grupa klucz, aby użyć utworzonego pola miesiąca:

db.collection.aggregate([
    { 
        "$project": {
            "createdAtWeek": { "$week": "$createdAt" },
            "createdAtMonth": { "$month": "$createdAt" },
            "rating": 1
        }
    },
    {
         "$group": {
             "_id": "$createdAtMonth",
             "average": { "$avg": "$rating" },
             "week": { "$first": "$createdAtWeek" }
         }
    }
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dlaczego Spring Data MongoDB nie może utworzyć instancji tej zagnieżdżonej struktury typów?

  2. Async Mongoose wywołania zwrotne w instrukcji then

  3. Jak tworzyć zagnieżdżone zapytania w MongoDb, które działają jak zagnieżdżone zapytania wybierające Sql?

  4. Jak sprawdzić, czy podana data jest pomiędzy dwiema datami w mongodb?

  5. MongoEngine - Usunięte pole nadal podnosi ValidationError