sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo agrupar por documentos por semana en mongodb

Puede lograr esto usando la operación agregada. Hay $semana operación de agregación en mongodb.

Primero determine la fecha de inicio usando cualquier lenguaje de programación que use.

En la siguiente operación de tubería, contando el número de documentos que coinciden a la semana. Puede hacerlo en cualquier campo/tipo de agregación que necesite.

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

Para los dos documentos anteriores que especificó, el resultado será

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

El _id arriba dice, semana 48, y hay dos documentos.

Vaya al enlace $semana para saber cómo mongodb cuenta los números de semana.