MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como agrupar por vários campos no MongoDB quando um é um campo de data


Você precisa usar o $dayOfYear object como o valor de um novo campo em seu _id , assim:
db.builds.aggregate(
    { $group: { 
        _id: { 
            build_result: "$build_result", 
            dayOfYear: { $dayOfYear: "$build_timestamp" }
        },
        build_duration: { $avg: "$build_duration" } 
    } }
)

Resultado:
{
  "result": [
    {
      "_id": {
        "build_result": "SUCCESS",
        "dayOfYear": 15
      },
      "build_duration": 667075
    }
  ],
  "ok": 1
}