Quando usi MongoDB, puoi usare mongoimport
per importare documenti in una raccolta. mongoimport
è un'utilità della riga di comando che importa il contenuto da un file JSON, CSV o TSV esteso. Il file di importazione potrebbe essere stato creato da mongoexport
o qualche altra utilità di esportazione.
Questo articolo presenta esempi di importazione di un file JSON in MongoDB.
Esempio
Supponiamo di avere il seguente file JSON chiamato pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Il comando seguente importa il file JSON in MongoDB:
mongoimport --db=PetHotel --file=pets.json
In questo caso, non ho specificato una raccolta in cui importarlo, quindi ha creato una raccolta con lo stesso nome del file (pets
).
Controlla i risultati
Diamo un'occhiata alla collezione.
db.pets.find()
Risultato:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Possiamo vedere che i documenti sono stati importati come previsto.
Specifica il nome della raccolta
Puoi usare il --collection
(o -c
) per specificare una raccolta in cui importare il file.
Ecco un esempio di utilizzo di --collection
parametro per importare lo stesso file in una raccolta diversa:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Se la raccolta non esiste già, verrà creata. Se esiste già, il risultato dell'importazione dipenderà dalla modalità che stai utilizzando (ne parleremo più avanti).
Elimina la raccolta prima dell'importazione
Puoi usare il --drop
parametro per eliminare qualsiasi raccolta esistente con lo stesso nome di quella che stai tentando di creare/importare.
Immagina di avere un secondo file, chiamato pets2.json
, con il seguente documento:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Ecco cosa succede se importo quel documento in pets
raccolta utilizzando il --drop
opzione:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Uscita:
2021-01-03T15:42:25.626+1000 connected to: mongodb://localhost/ 2021-01-03T15:42:25.640+1000 dropping: PetHotel.pets 2021-01-03T15:42:25.734+1000 2 document(s) imported successfully. 0 document(s) failed to import.
Il messaggio ci dice che la raccolta è stata eliminata ed è stato importato un documento.
Diamo un'occhiata alla collezione:
db.pets.find()
Risultato:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Come previsto, i nostri due nuovi documenti sono gli unici nella collezione.
Modalità di importazione
Ci sono varie modalità di importazione che puoi usare con mongoimport
. Queste modalità determinano cosa succede se nella raccolta sono già presenti documenti corrispondenti in cui stai tentando di importare.
Le modalità sono le seguenti:
Modalità | Descrizione |
---|---|
insert | Questa è la modalità predefinita. Questa modalità inserisce i documenti dal file di importazione. Se esiste già un documento corrispondente nella raccolta, si verifica un errore. Un documento corrispondente è uno che ha lo stesso ID univoco (come un _id corrispondente campo) come documento nel file di importazione. |
upsert | Sostituisce i documenti esistenti nel database con i documenti corrispondenti dal file di importazione. Tutti gli altri documenti vengono inseriti. |
merge | Unisce i documenti esistenti che corrispondono a un documento nel file di importazione con il nuovo documento. Tutti gli altri documenti vengono inseriti. |
delete | Elimina i documenti esistenti nel database che corrispondono a un documento nel file di importazione. Eventuali documenti non corrispondenti non hanno effetto. |
Vedi Le modalità di importazione di mongoimport
per esempi di ciascuna modalità.
Cerca mongoimport
mongoimport
fa parte del pacchetto MongoDB Database Tools. I MongoDB Database Tools sono una suite di utilità da riga di comando per lavorare con MongoDB.
Se non sei sicuro di avere MongoDB Database Tools/mongoimport
installato, prova a eseguire il seguente comando nel terminale o nel prompt dei comandi per verificare:
mongoimport --version
Se ce l'hai, dovresti vedere le informazioni sulla versione, ecc. Se non ce l'hai, puoi usare le istruzioni di installazione sul sito Web di MongoDB per installarlo sul tuo sistema.
Dove eseguire i comandi?
Non dimenticare che devi eseguire mongoimport
comandi dalla riga di comando del sistema (ad es. una nuova finestra del terminale o del prompt dei comandi).
Non eseguirli da mongo
guscio.