sql >> Base de Datos >  >> NoSQL >> MongoDB

Script de shell MongoDB que usa proyección para formatear la fecha y obtener la hora local

No puede usar directamente "toLocaleString()". Sin embargo, puede agregar el desplazamiento.

1) La tercera canalización se usa para agregar el desplazamiento

2) La cuarta canalización se usa para formatear la fecha

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"
                }
            }
      }
   }

]);

Entrada:-

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

Salida:-

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

Tenga en cuenta el resultado 2. La siguiente fecha se completa correctamente.