sql >> Databasteknik >  >> NoSQL >> MongoDB

Importera dokument till MongoDB från en mängd JSON-dokument

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.


  1. Schemaläggning av selleriuppgifter med stor ETA

  2. Redis är det möjligt att uppdatera flera hset-nycklar (inte fält) med hjälp av mset

  3. Redis nyckeldesign för aktieapplikation i realtid

  4. Hur man försplittrar en GUID-baserad Shard Key med MongoDB