MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come raggruppare per documenti per settimana in mongodb

È possibile ottenere ciò utilizzando l'operazione di aggregazione. C'è $week operazione di aggregazione in mongodb.

Per prima cosa determina la data di inizio utilizzando il linguaggio di programmazione che usi.

Nella successiva operazione di pipeline, contando il numero di documenti corrispondenti a una settimana. Puoi farlo su qualsiasi campo/tipo di aggregazione di cui hai bisogno.

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

Per i due documenti sopra specificati il ​​risultato sarà

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

Il _id sopra dice 48a settimana, e ci sono due documenti.

Vai al link $week per sapere come mongodb conta i numeri della settimana.