Når du bruger MongoDB, kan du bruge mongoimport
at importere dokumenter til en samling. mongoimport
er et kommandolinjeværktøj, der importerer indhold fra en udvidet JSON-, CSV- eller TSV-fil. Importfilen kunne være blevet oprettet af mongoexport
eller et andet eksportværktøj.
Denne artikel præsenterer eksempler på import af en JSON-fil til MongoDB.
Eksempel
Antag, at vi har følgende JSON-fil kaldet pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Følgende kommando importerer JSON-filen til MongoDB:
mongoimport --db=PetHotel --file=pets.json
I dette tilfælde specificerede jeg ikke en samling at importere den til, så den oprettede en samling med samme navn på filen (pets
).
Tjek resultaterne
Lad os tage et kig 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, at dokumenterne blev importeret som forventet.
Angiv samlingens navn
Du kan bruge --collection
(eller -c
) parameter for at angive en samling at importere filen til.
Her er et eksempel på brug af --collection
parameter for at importere den samme fil til en anden samling:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Hvis samlingen ikke allerede eksisterer, oprettes den. Hvis det allerede eksisterer, vil importresultatet afhænge af den tilstand, du bruger (mere om dette nedenfor).
Slip samlingen før import
Du kan bruge --drop
parameter for at slette enhver eksisterende samling med samme navn som den, du forsøger at oprette/importere.
Forestil dig, at vi har en anden fil, kaldet pets2.json
, med følgende dokument:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Her er, hvad der sker, hvis jeg importerer det dokument til pets
samling ved hjælp af --drop
mulighed:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Output:
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.
Meddelelsen fortæller os, at samlingen blev droppet, og et dokument blev importeret.
Lad os tage et kig på kollektionen:
db.pets.find()
Resultat:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Som forventet er vores to nye dokumenter de eneste i samlingen.
Importtilstande
Der er forskellige importtilstande, som du kan bruge med mongoimport
. Disse tilstande bestemmer, hvad der sker, hvis der allerede er matchende dokumenter i den samling, som du forsøger at importere til.
Tilstandene er som følger:
Tilstand | Beskrivelse |
---|---|
insert | Dette er standardtilstanden. Denne tilstand indsætter dokumenterne fra importfilen. Hvis der allerede findes et matchende dokument i samlingen, opstår der en fejl. Et matchende dokument er et, der har det samme unikke ID (såsom et matchende _id ). felt) som et dokument i importfilen. |
upsert | Erstatter eksisterende dokumenter i databasen med matchende dokumenter fra importfilen. Alle andre dokumenter er indsat. |
merge | Fletter eksisterende dokumenter, der matcher et dokument i importfilen, med det nye dokument. Alle andre dokumenter er indsat. |
delete | Sletter eksisterende dokumenter i databasen, der matcher et dokument i importfilen. Ikke-matchende dokumenter har ingen effekt. |
Se Importtilstande for mongoimport
for eksempler på hver tilstand.
Se efter 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 kommandoerne køres?
Glem ikke, du skal køre mongoimport
kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).
Kør dem ikke fra mongo
skal.