Ich habe gesehen, wie Zeichenfolgen, ganzzahlige Zeitstempel und Mongo-Datetime-Objekte verwendet wurden.
177
Der beste Weg ist nativer JavaScript speichern Date - Objekte , die auf der Karte BSON nativen Date - Objekte .
> db.test.insert({date: ISODate()})
> db.test.insert({date: new Date()})
> db.test.find()
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:42.389Z") }
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:57.240Z") }
Der native Typ unterstützt eine ganze Reihe nützlicher Methoden , die Sie beispielsweise in Ihren Jobs zur Kartenreduzierung verwenden können.
Bei Bedarf können Sie Date
Objekte einfach mit der Methode bzw. dem Konstruktor in und aus Unix-Zeitstempeln 1) konvertieren .getTime()
Date(milliseconds)
1) Genau genommen wird der Unix-Zeitstempel in Sekunden gemessen . Das JavaScript-Datumsobjekt misst seit der Unix-Epoche in Millisekunden .
389
und240
sind die Millisekunden des Zeitstempels. DieZ
im String - Format erzählt MongoDB , dass der Zeitstempel Sie ist in UTC zur Verfügung gestellt. Wenn Sie es dann zurücklesen, konvertiert Ihre Anwendung es wahrscheinlich in Ihre lokale Zeitzone, sodass es so aussieht, als hätte sich die Zeit geändert. Aber die Zeit ist immer noch dieselbe, sie wird nur aus einer anderen Zeitzonenperspektive interpretiert. Zum Beispiel12:50:42Z
und13:50:42+01:00
repräsentieren den gleichen Zeitpunkt.21:56:03+01:00
jetzt in MEZ und Sie einfügennew Date()
, dann MongoDB könnte repräsentieren sie als20:56:03Z
. Wenn Sie es jedoch zurücklesen und in Ihrer Anwendung mithilfe der lokalen Zeitzoneneinstellungen (MEZ) anzeigen, wird es21:56:03
erneut gelesen .Ein Datenstempel befindet sich bereits im _id-Objekt und repräsentiert die Einfügezeit
Wenn Sie also die Einfügezeit benötigen, ist sie bereits vorhanden:
Melden Sie sich bei mongodb shell an
Erstellen Sie Ihre Datenbank, indem Sie Elemente einfügen
Machen wir diese Datenbank zu der, in der wir uns gerade befinden
Holen Sie sich die Zeilen zurück:
Holen Sie sich jede Zeile im Format JJJJ-MM-TT HH: MM: SS:
Wenn dieser letzte Einzeiler Sie verwirrt, habe ich eine Anleitung, wie das hier funktioniert: https://stackoverflow.com/a/27613766/445131
quelle
_id
?_id.getTimestamp()
.