När du använder MongoDB kan du använda mongoimport
för att importera dokument till en samling. mongoimport
är ett kommandoradsverktyg som importerar innehåll från en utökad JSON-, CSV- eller TSV-fil. Importfilen kan ha skapats av mongoexport
eller något annat exportverktyg.
Den här artikeln presenterar exempel på import av en JSON-fil till MongoDB.
Exempel
Anta att vi har följande JSON-fil som heter pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Följande kommando importerar JSON-filen till MongoDB:
mongoimport --db=PetHotel --file=pets.json
I det här fallet angav jag inte en samling att importera den till, så den skapade en samling med samma namn på filen (pets
).
Kontrollera resultaten
Låt oss ta en titt på samlingen.
db.pets.find()
Resultat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Vi kan se att dokumenten importerades som förväntat.
Ange samlingens namn
Du kan använda --collection
(eller -c
) parameter för att ange en samling att importera filen till.
Här är ett exempel på hur du använder --collection
parameter för att importera samma fil till en annan samling:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Om samlingen inte redan finns skapas den. Om det redan finns, kommer importresultatet att bero på vilket läge du använder (mer om detta nedan).
Släpp samlingen innan du importerar
Du kan använda --drop
parameter för att ta bort alla befintliga samlingar med samma namn som den du försöker skapa/importera.
Föreställ dig att vi har en andra fil, som heter pets2.json
, med följande dokument:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Här är vad som händer om jag importerar det dokumentet till pets
samling med --drop
alternativ:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Utdata:
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.
Meddelandet berättar att insamlingen togs bort och ett dokument importerades.
Låt oss ta en titt på samlingen:
db.pets.find()
Resultat:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Som väntat är våra två nya dokument de enda i samlingen.
Importlägen
Det finns olika importlägen som du kan använda med mongoimport
. Dessa lägen avgör vad som händer om det redan finns matchande dokument i samlingen som du försöker importera till.
Lägena är följande:
Läge | Beskrivning |
---|---|
insert | Detta är standardläget. Detta läge infogar dokumenten från importfilen. Om ett matchande dokument redan finns i samlingen uppstår ett fel. Ett matchande dokument är ett som har samma unika ID (som ett matchande _id ). fält) som ett dokument i importfilen. |
upsert | Ersätter befintliga dokument i databasen med matchande dokument från importfilen. Alla andra dokument infogas. |
merge | Sammanfogar befintliga dokument som matchar ett dokument i importfilen med det nya dokumentet. Alla andra dokument infogas. |
delete | Tar bort befintliga dokument i databasen som matchar ett dokument i importfilen. Alla icke-matchande dokument har ingen effekt. |
Se Importlägen för mongoimport
för exempel på varje läge.
Kontrollera efter 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 kör man kommandona?
Glöm inte att du måste köra mongoimport
kommandon från ditt systems kommandorad (t.ex. ett nytt terminal- eller kommandotolksfönster).
Kör dem inte från mongo
skal.