När du använder mongoimport
, kan du använda --jsonArray
parameter för att importera en array av JSON-dokument.
Exempel
Anta att vi har följande JSON-dokument som heter pets_array.json
:
[
{"_id":1.0,"name":"Wag","type":"Dog"},
{"_id":2.0,"name":"Bark","type":"Dog"},
{"_id":3.0,"name":"Meow","type":"Cat"}
]
Om vi försöker importera det till MongoDB utan med --jsonArray
parameter får vi följande fel:
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.
I grund och botten kan den inte avkoda arrayen till ett dokument.
För att fixa detta kan vi helt enkelt lägga till --jsonArray
parameter:
mongoimport --db=PetHotel --jsonArray --file=pets_array.json
Utdata:
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.
Detta talar om för oss att alla tre dokument importerades framgångsrikt.
Vi kan nu ta en titt på samlingen för att kontrollera:
db.pets_array.find()
Resultat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : 2, "name" : "Bark", "type" : "Dog" }
Som förväntat finns alla tre dokument i den nyskapade samlingen.
Samlingen är nyskapad eftersom vi inte har angett en samling att importera dokumenten till. Om vi hade gjort det, skulle de ha importerats till den angivna samlingen.
Har inte mongoimport
?
mongoimport
är en del av MongoDB Database Tools-paketet. MongoDB Database Tools är en uppsättning kommandoradsverktyg för att arbeta med MongoDB.
Om du inte är säker på om du har MongoDB Database Tools/mongoimport
installerat, prova att köra följande kommando i din terminal eller kommandotolk för att kontrollera:
mongoimport --version
Om du har det bör du se versionsinformation etc. Om du inte har det kan du använda installationsinstruktionerna på MongoDB-webbplatsen för att installera det på ditt system.
Var du ska köra mongoimport
Kommandon?
Du måste köra mongoimport
kommandon från ditt systems kommandorad (t.ex. ett nytt terminal- eller kommandotolkfönster).
Kör dem inte från mongo
skal.