sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man grupperar efter flera fält i MongoDB när ett är ett datumfält

Du måste använda $dayOfYear objekt som värdet av ett nytt fält i ditt _id , så här:

db.builds.aggregate(
    { $group: { 
        _id: { 
            build_result: "$build_result", 
            dayOfYear: { $dayOfYear: "$build_timestamp" }
        },
        build_duration: { $avg: "$build_duration" } 
    } }
)

Utdata:

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



  1. Itererar över en mongodb-markör i serie (väntar på återuppringningar innan du går till nästa dokument)

  2. Hur utesluter jag fält från ett inbäddat dokument i Mongoid?

  3. Mongoid hitta inbäddat dokument

  4. Hur gör jag en sökfråga i Mongoose?