sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB-skalskript som använder projektion för att formatera datum och få lokal tid

Du kan inte direkt använda "toLocaleString()". Du kan dock lägga till offset.

1) Tredje pipeline används för att lägga till offset

2) Fjärde pipeline används för att formatera datumet

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

]);

Indata:-

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

Utdata:-

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

Observera utdata 2. Nästa datum är korrekt ifyllt.




  1. Hur tar man bort dubbletter med ett visst tillstånd i mongodb?

  2. Så här löser du com.mongodb.spark.exceptions.MongoTypeConversionException:Kan inte casta... Java Spark

  3. mongodb schema.createIndex är inte en funktion

  4. Hur indexerar jag två arrayer i MongoDB?