sql >> Database >  >> NoSQL >> MongoDB

Hoe te groeperen op documenten per week in Mongodb

U kunt dit bereiken door de aggregatiebewerking te gebruiken. Er is $week aggregatiebewerking in mongodb.

Bepaal eerst de startdatum met behulp van de programmeertaal die u gebruikt.

Bij het volgen van de pijplijnbewerking, het tellen van het aantal documenten dat overeenkomt met een week. Je kunt het doen op elk veld/type aggregatie dat je nodig hebt.

pipeline = [
    {
        $match: {
            timeStamp: {$gt: ISODate(startDate)},
        }
    },
    {
        $group: {
            _id: {$week: '$timeStamp'},
            documentCount: {$sum: 1}
        }
    }
];
db.mycollection.aggregate(pipeline)

Voor de bovenstaande twee documenten die u hebt opgegeven, is het resultaat

{ "_id" : 48, "documentCount" : 2 }

De _id hierboven staat, 48e week, en er zijn twee documenten.

Ga via de link $week om te weten hoe mongodb de weeknummers telt.




  1. Hoe om te gaan met gebruikers- en socketparen met node.js + redis

  2. Play framework mongodb morphia-module installeren

  3. Omgekeerde paginering via een opnieuw gesorteerde set

  4. vervallen redis-cachesleutel op bepaalde uren in plaats van duur