sql >> Database >  >> NoSQL >> MongoDB

Groeperen op dag/maand/week op basis van het datumbereik

Voor wekelijkse groepering voert u de volgende pijplijn uit die voornamelijk de gebruikt Datum-aggregatie-operators om de datumdelen te extraheren:

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

en voor maandelijkse aggregaten, verwissel de $group toets om het aangemaakte maandveld te gebruiken:

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



  1. Redis ontmaskeren met Ingress Nginx Controller

  2. Mongodb opvragen van golang met behulp van de _id die is opgeslagen in een array

  3. MongoDB-syntaxis schrijven

  4. kan redis-server op linux niet doden