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% 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):
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:
Ein alternativer Ansatz besteht darin, die erstellten Zeitstempel nach dem Einfügen in Dokumente einzufügen.
Zum Beispiel:
%Vor% 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%Tags und Links mongodb date collections timestamp unix-timestamp