MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Importa un file JSON in MongoDB con mongoimport

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.