MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Script de shell do MongoDB usando projeção para formatar a data e obter a hora local


Você não pode usar diretamente "toLocaleString()". No entanto, você pode adicionar o deslocamento.

1) O terceiro pipeline é usado para adicionar o deslocamento

2) O quarto pipeline é usado para formatar a data
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")

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

Observe a saída 2. A próxima data foi preenchida corretamente.