Mongo db default timestamp
So erstellen Sie ein Datums-Feld mit dem Standardwert der Standardwert sollte sein, den aktuellen Zeitstempel, wenn das einsetzen geschah in der Sammlung.
- Sind Sie mit jeder Fahrer? Programmiersprache?
- Wir sind immer Daten aus .Net-Dienstleistungen ..aber das Teil ist dont haben Zugriff . Gibt es eine Möglichkeit zum erstellen Feld mit in Mongo-setup selbst.
- Wie sind Sie auf einfügen das Dokument? sind Sie mit der
mongodb-csharp
Treiber oder der shell? - Bitte bestätigen Sie die Antwort, die Sie finden hilfreich. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist ziemlich einfach!
Bei Verwendung der Mungo zum Beispiel, können Sie Funktionen wie ein Standard-Wert.
Mungo ruft dann die Funktion für alle einführen.
So, in Ihrem Schema, das Sie sowas machen würde wie:
Erinnern nur an die Funktion Objekt selbst
Date.now
und nicht der Wert des FunktionsaufrufsDate.now()
da dies nur stellen Sie das Datum einmal, um den Wert, wenn Ihr Schema erstellt habe.Diese Lösung gilt für Mungo & Node.Js und ich hoffe, dass Ihr einen Anwendungsfall haben, weil Sie nicht angeben, dass mehr genau.
Für diese Besondere Zweck Sie nicht wirklich brauchen, erstellen ein explizites Feld für das speichern von timestamps. Die Objekt-id, d.h.
"_id"
, dass mongo standardmäßig erzeugt, kann verwendet werden, um dem Zweck zu dienen somit sparen Sie eine zusätzliche redundante Raum. Ich gehe davon aus, dass Sie mit node.js so können Sie etwas wie die folgende, um die Zeit von insbesondere der Erstellung von Dokumenten:Und, wenn Sie mit so etwas wie Mungo, tun Sie es wie diese:
Lesen Sie mehr über "_id" hier.
Würden Sie einfach tun dies, während Sie... für aktuelle
timestamp
.Möchte ich nur darauf hinweisen, dass im Falle Sie möchten, die timestamp gespeichert werden, in form einer ganzen Zahl statt einem Datum-format, können Sie dies tun:
Hier ist ein Befehl, nicht ein Standard, aber es fügt ein Objekt mit dem aktuellen Zeitstempel:
Diese haben den gleichen Effekt:
Sich bewusst sein, dass
Date()
ohnenew
wäre anders, es ist nicht wieder einISODate
Objekt, sondern ein string.Auch, diese nutzen die Kunden Zeit, nicht die server-Zeit, die unterschiedlich sein kann (da die Zeit-Einstellung ist nie 100% genau).
Dank Freunde ..
Ich fand einen anderen Weg, um Zeitstempel aus _id Feld. objectid.gettimestamp() aus diesem können wir es Zeitstempel.
Dies ist ein wenig alt, aber ich Quelle, wenn Sie das Datum mit dem.jetzt () - Methode, es wird nicht das aktuelle Datum und die Zeit, es klemmt an der Zeit, dass Sie begann Ihre Knoten-Prozess läuft. Daher werden alle Zeitstempel werden standardmäßig auf das Datum.now (), Wann Sie begann Ihre server.
Ein Weg, den ich gearbeitet, um dies zu tun, die folgenden:
Beim Erstellen von Dokument-Zeitstempel ist eine der wenigen konfigurierbaren Optionen können an den Konstruktor übergeben werden oder direkt eingestellt.
Danach, Mungo weist createdAt und updatedAt Felder in das schema, die Art zugeordnet ist Datum.