web-dev-qa-db-fra.com

comment convertir l'horodatage à ce jour en mongodb?

je travaille sur l'agrégation de mongodb collection.my mongodb collection has creation_time in timestamp.Comment puis-je collecter le résultat du même jour et l'agréger avec le résultat du lendemain?

{
    "_id" : "1522845653126"
},
{
    "_id" : "1522838153324"
},
{
    "_id" : "1513421466415"
},
{
    "_id" : "1515488183153"
},
{
    "_id" : "1521571234500"
}

Comment puis-je calculer. Combien d'entrées sont enregistrées à une date spécifique? Je suppose que je veux est d'interroger les résultats qui retournent un total cumulé de l'agrégation, comme:

{
 time: "2013-10-10"
 count: 3,

},
{
 time: "2013-10-11"
 total: 7,

}

quelque chose comme ça. j'ai essayé de faire quelque chose comme ça

db.coll.aggregate([
   {
        $group:{
        _id:new Date($creation_time).toLocaleDateString(),
         $count:{$add:1}
            }
         time:new Date($creation_time).toLocaleDateString()
   }
 ])

Cela ne fonctionne pas. Où est-ce que je fais mal ?? Je suis nouveau sur mongodb. Merci pour toute aide

7
user8934737

Vous pouvez utiliser $toDate agrégation pour convertir l'horodatage en date ISO et $toLong pour convertir l'horodatage de la chaîne en valeur entière dans mongodb 3.6

db.collection.aggregate([
  { "$project": {
    "_id": {
      "$toDate": {
        "$toLong": "$_id"
      }
    }
  }},
  { "$group": {
    "_id": { "$dateToString": { "format": "%Y-%m-%d", "date": "$_id" } },
    "count": { "$sum": 1 }
  }}
])

Essayez-le ici

Et avec les versions précédentes

db.collection.aggregate([
  { "$project": {
    "date": { "$add": [ new Date(0), "$_id" ] }
  }}
])
7
Ashh