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

Importa documenti in MongoDB da un array di documenti JSON

Quando si utilizza mongoimport , puoi usare --jsonArray parametro per importare un array di documenti JSON.

Esempio

Supponiamo di avere il seguente documento JSON chiamato pets_array.json :

[
    {"_id":1.0,"name":"Wag","type":"Dog"},
    {"_id":2.0,"name":"Bark","type":"Dog"},
    {"_id":3.0,"name":"Meow","type":"Cat"}
]

Se proviamo a importarlo in MongoDB senza utilizzando --jsonArray parametro, otteniamo il seguente errore:

2021-01-03T13:52:58.360+1000	no collection specified
2021-01-03T13:52:58.360+1000	using filename 'pets_array' as collection
2021-01-03T13:52:58.366+1000	connected to: mongodb://localhost/
2021-01-03T13:52:58.371+1000	Failed: cannot decode array into a D
2021-01-03T13:52:58.371+1000	0 document(s) imported successfully. 0 document(s) failed to import.

Fondamentalmente, non può decodificare l'array in un documento.

Per risolvere questo problema, possiamo semplicemente aggiungere --jsonArray parametro:

mongoimport --db=PetHotel --jsonArray --file=pets_array.json

Uscita:

2021-01-03T13:58:13.407+1000	no collection specified
2021-01-03T13:58:13.408+1000	using filename 'pets_array' as collection
2021-01-03T13:58:13.421+1000	connected to: mongodb://localhost/
2021-01-03T13:58:13.450+1000	3 document(s) imported successfully. 0 document(s) failed to import.

Questo ci dice che tutti e tre i documenti sono stati importati correttamente.

Ora possiamo dare un'occhiata alla collezione per controllare:

db.pets_array.find()

Risultato:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }

Come previsto, tutti e tre i documenti si trovano nella raccolta appena creata.

La raccolta è stata creata di recente perché non è stata specificata una raccolta in cui importare i documenti. Se lo avessimo fatto, sarebbero stati importati nella raccolta specificata.

Non ho 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 mongoimport Comandi?

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.