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

Script shell MongoDB utilisant la projection pour formater la date et obtenir l'heure locale

Vous ne pouvez pas utiliser directement "toLocaleString()". Cependant, vous pouvez ajouter le décalage.

1) Le troisième pipeline est utilisé pour ajouter le décalage

2) Le quatrième pipeline est utilisé pour formater la date

var tzOffset = 5.5 * 1000 * 60 * 60;

db.MyCollection.aggregate( [
   { "$match": { "ProjectID" : 999 } },
   { "$sort": { "CreatedDate": -1 } },
   {          
      $project: {
         localTime: {
            $let: {
               vars: {
                   "localTime": { "$add": [ "$DueDate", tzOffset]

                }
               },
               in: { $add: ["$$localTime"] }
            }
         }
      }
   },
   {          
      $project: {
         "_id": 0, 
         "formattedLocalTime": {
                "$dateToString": { 
                    "format": "%Y-%m-%d %H-%M", 
                    "date": "$localTime"
                }
            }
      }
   }

]);

Entrée :-

"DueDate" : ISODate("2016-08-11T10:17:09.203Z")
"DueDate" : ISODate("2016-08-11T23:16:09.203Z")

Sortie :-

"formattedLocalTime" : "2016-08-11 15-47"
"formattedLocalTime" : "2016-08-12 04-46"

Veuillez noter la sortie 2. La prochaine date est correctement renseignée.