sql >> Databasteknik >  >> NoSQL >> MongoDB

Importera en JSON-fil till MongoDB med mongoimport

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.


  1. Skicka filen till aktivt jobb / bakgrundsjobb

  2. MongoDB 2.4.1 är nu tillgänglig på ScaleGrid

  3. Vad betyder för många positionsalternativ när man gör en mongoexport?

  4. Hur frågar jag inifrån Mongoose pre hook i en Node.js / Express-app?