2015-04-21 9 views
6

Ich habe DB, der Name ist "Projekt" und Sammlung, deren Name "Beispiel" ist, dann habe ich eine JSON-Datei mit mongoimport Befehl eingefügt.Mongoimport JSON-Dateiupdate oder überschreiben ..?

Jetzt habe ich die gleiche JSON-Datei bearbeitet. Wenn also dieselbe JSON-Datei in die Sammlung importiert werden soll, stehe ich vor dem Problem, dass mehrere Instanzen erstellt werden und keine Aktualisierung stattfindet.

Gibt es eine Möglichkeit, die bereits im mongodb vorhandenen Daten mithilfe des Befehls mongoimport zu aktualisieren oder zu überschreiben?

Bitte beachte, dass ich auch --mode=upsert Flagge versucht, mit:

./mongoimport --db Project --collection sample --mode=upsert --file /home/rule.json 

Antwort

9

Für MongoDB v3.x,

--mode=upsert 
4

Standardverhalten sagt überspringen, wenn bereits so standardmäßig vorhanden ist, es wird nicht vorhandene Daten überschreiben.

Aber Sie können es mit --upsert Flagge aktualisieren.

+0

ok, ich möchte löschen und neu importieren, wenn ich 'upsert' verwende, ist es gut für mich? – Mercer

+0

können Sie upsert verwenden, die das vorhandene überschreiben wird. (Erase + Import = Überschreiben mit neuen Daten.) Lassen Sie mich wissen, wenn Sie etwas anderes brauchen. –

+1

funktioniert nicht ich benutze --upsert a das Ende meiner Befehlszeile, aber wenn ich eine db.stats() mache die Anzahl der Objekte erhöhen – Mercer

0

--drop Flag kann auch zusammen mit mongoimport Befehl verwendet werden, um die vorhandenen Daten zu überschreiben/aktualisieren.

--drop 


./mongoimport --db Project --collection sample --drop --file /home/UCSC_rule.json 

gab ich diese Lösung, weil ich --upsert Flag verwendet hat versucht, aber ich konnte keine Änderungen in den vorhandenen Daten stattdessen neue Instanz erstellt wurde, sehen.

Verwandte Themen