MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Convertir la date de millisecondes en objet ISODate

En fait, c'est possible, l'astuce consiste à ajouter votre temps en millisecondes à un objet Date() de zéro milliseconde en utilisant une syntaxe similaire à :

dt : {$add: [new Date(0), "$time"]}

J'ai modifié votre agrégation d'en haut pour produire le résultat :

db.events.aggregate(
    {
        $project : {
            _id : "$_id",
            dt : {$add: [new Date(0), "$time"]}
        }
    },
    { 
        $project : {
            _id : "$_id",
            date : { 
                hour : {$hour : "$dt"} 
            }
        }
    }
);

Le résultat est (avec une entrée de vos données d'échantillon) :

{
  "result": [
    {
      "_id": ObjectId("532828ac338ed9c33aa8eca7"),
      "date": {
        "hour": 11
      }
    }
  ],
  "ok": 1
}