Når du bruger mongoimport
, kan du bruge --jsonArray
parameter for at importere et array af JSON-dokumenter.
Eksempel
Antag, at vi har følgende JSON-dokument kaldet pets_array.json
:
[
{"_id":1.0,"name":"Wag","type":"Dog"},
{"_id":2.0,"name":"Bark","type":"Dog"},
{"_id":3.0,"name":"Meow","type":"Cat"}
]
Hvis vi prøver at importere det til MongoDB uden ved hjælp af --jsonArray
parameter, får vi følgende fejl:
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.
Dybest set kan den ikke afkode arrayet til et dokument.
For at rette dette kan vi blot tilføje --jsonArray
parameter:
mongoimport --db=PetHotel --jsonArray --file=pets_array.json
Output:
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.
Dette fortæller os, at alle tre dokumenter blev importeret med succes.
Vi kan nu tage et kig på kollektionen for at tjekke:
db.pets_array.find()
Resultat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : 2, "name" : "Bark", "type" : "Dog" }
Som forventet er alle tre dokumenter i den nyoprettede samling.
Samlingen er nyoprettet, fordi vi ikke har angivet en samling at importere dokumenterne til. Hvis vi havde, så ville de være blevet importeret til den angivne samling.
Har ikke mongoimport
?
mongoimport
er en del af MongoDB Database Tools-pakken. MongoDB-databaseværktøjerne er en række kommandolinjeværktøjer til at arbejde med MongoDB.
Hvis du ikke er sikker på, om du har MongoDB Database Tools/mongoimport
installeret, prøv at køre følgende kommando i din terminal eller kommandoprompt for at kontrollere:
mongoimport --version
Hvis du har det, bør du se versionsoplysninger osv. Hvis du ikke har det, kan du bruge installationsinstruktionerne på MongoDB-webstedet til at installere det på dit system.
Hvor skal mongoimport
køres Kommandoer?
Du skal køre mongoimport
kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).
Kør dem ikke fra mongo
skal.