MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Script della shell MongoDB che utilizza la proiezione per formattare la data e ottenere l'ora locale

Non puoi usare direttamente "toLocaleString()". Tuttavia, puoi aggiungere l'offset.

1) La terza pipeline viene utilizzata per aggiungere l'offset

2) La quarta pipeline viene utilizzata per formattare la 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"
                }
            }
      }
   }

]);

Inserimento:-

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

Risultato:-

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

Si prega di notare l'output 2. La data successiva è compilata correttamente.