MongoDb Zeitstempel

8

Ich habe erstellt und möchte jetzt eine Dummy-Sammlung importieren. Eines der Felder in jedem Element sind Felder "erstellt" und "aktualisiert". was kann ich in die source / json-datei setzen, damit MongoDb das aktuelle Datum und die Zeit als Wert beim Import verwendet?

das wird nicht funktionieren

%Vor%     
Simba 10.10.2012, 23:47
quelle

2 Antworten

13

mongoimport ist zum Importieren von Daten vorhandener -Daten im CSV-, TSV- oder JSON-Format vorgesehen. Wenn Sie neue Felder einfügen möchten (z. B. created timestamp), müssen Sie einen Wert für sie festlegen.

Wenn Sie beispielsweise den Zeitstempel created auf die aktuelle Zeit setzen möchten, könnten Sie einen Unix-Zeitstempel von der Befehlszeile erhalten (der Sekunden seit der Epoche entspricht):

%Vor%

Die JSON <date> -Darstellung , die mongoimport erwartet, ist eine 64-Bit-Ganzzahl mit Vorzeichen, die Millisekunden seit der Epoche darstellt. Sie müssen den Unixtime-Sekunden-Wert mit 1000 multiplizieren und in Ihre JSON-Datei aufnehmen:

%Vor%

Ein alternativer Ansatz besteht darin, die erstellten Zeitstempel nach dem Einfügen in Dokumente einzufügen.

Zum Beispiel:

%Vor%     
Stennie 11.10.2012, 13:20
quelle
3

Wie Stennie richtig gesagt hat, können Sie dies nicht mit mongoimport oder mongorestore tun: Sie dienen nur dazu, Ihre zuvor gelöschten Daten wiederherzustellen. Die richtige Vorgehensweise besteht darin, die Daten wiederherzustellen und anschließend die wiederhergestellten Daten zu aktualisieren.

Mit einem neuen mongo 2.6 können Sie dies einfach mit $ currentDate Operation, die erstellt wurde, um die Zeit auf einen aktuellen Zeitstempel zu aktualisieren.

In deinem Fall brauchst du etwas wie

%Vor%     
Salvador Dali 25.10.2013 09:08
quelle