MongoDB-databaseværktøjerne inkluderer et hjælpeprogram kaldet mongoexport
der giver dig mulighed for at eksportere MongoDB-data til en CSV- eller JSON-fil.
Denne artikel viser dig, hvordan du bruger mongoexport
at eksportere en MongoDB-samling til en JSON-fil.
Syntaks
Syntaksen for mongoexport
går sådan her:
mongoexport --collection=<coll> <options> <connection-string>
Du skal køre mongoexport
kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).
Kør ikke mongoexport
kommandoer fra mongo
skal.
Eksporter en samling
Følgende eksempelkode eksporterer en samling fra MongoDB til en JSON-fil:
mongoexport --db=PetHotel --collection=pets --out=data/pets.json
Dette eksporterer en samling kaldet pets
fra PetHotel
database til en fil kaldet pets.json
i data/
folder.
Hvis mappen ikke eksisterer, er den oprettet. Det samme med filen. Det forudsætter i øvrigt, at der ikke er nogen tilladelsesproblemer med at skrive en fil til den angivne placering.
I dette eksempel har jeg ikke angivet nogen vært, port, godkendelse osv., så den eksporterer samlingen fra MongoDB-instansen, der kører på standard localhost-portnummeret 27017
.
Ovenstående eksempel kunne også skrives sådan:
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --out=data/pets.json
I dette tilfælde tilføjede vi --type
parameter og en --fields
parameter for at angive, hvilke felter der skal inkluderes i JSON-filen.
Nedenfor er en forklaring af de parametre, vi har leveret her.
Parameter | Beskrivelse |
---|---|
--db eller -d | Specificerer den database, der indeholder den samling, vi ønsker at eksportere. I dette tilfælde kaldes databasen PetHotel . Denne parameter kan alternativt sendes med -d (i stedet for --db ). |
--collection eller -c | Specificerer den samling, vi ønsker at eksportere. I dette tilfælde kaldes samlingen pets . Denne parameter kan alternativt overføres som -c (i stedet for --collection ). |
--type | Specificerer den eksporterede filtype. I dette tilfælde angiver vi json for at eksportere den til en JSON-fil. json er standardværdien, så hvis vi ikke angiver denne parameter, udlæses filen som en JSON-fil. |
--fields | Specificerer de felter, som vi ønsker at eksportere. Vi har mulighed for at eksportere alle felter i samlingen, eller blot nogle. Adskil flere feltnavne med et komma. Ved eksport til JSON er det valgfrit at angive feltnavne (i modsætning til CSV). |
--out | Specificerer det eksporterede filnavn og hvor det vil blive placeret. Hvis du ikke angiver et filnavn, mongoexport skriver data til standard output (stdout ). |
Tjek den eksporterede fil
Lad os kontrollere, at eksportoperationen fungerede som forventet.
Lad os først tjekke den originale samling.
use PetHotel
db.pets.find()
Resultat:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 } { "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 } { "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 }
Så vi kan se, at der er 7 kæledyr, alle med de samme felter, som vi specificerede i vores eksportoperation.
Lad os nu åbne den eksporterede fil pets.json
for at se, hvad der er indeni:
{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0} {"_id":2.0,"name":"Bark","type":"Dog","weight":10.0} {"_id":3.0,"name":"Meow","type":"Cat","weight":7.0} {"_id":4.0,"name":"Scratch","type":"Cat","weight":8.0} {"_id":5.0,"name":"Bruce","type":"Bat","weight":3.0} {"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0} {"_id":7.0,"name":"Jake","type":"Dog","weight":30.0}
Alle data er i den eksporterede fil som forventet.
Færre felter
Du kan bruge --fields
parameter for at angive, hvilke felter du vil eksportere.
Når du gør dette på JSON-filer, vil _id
felt eksporteres altid (selv når du ikke inkluderer det på listen over felter, der skal eksporteres).
Eksempel:
mongoexport --db=PetHotel --collection=pets --fields=name,type --out=data/pets.json
I dette tilfælde angiver jeg to felter, der skal eksporteres.
Når jeg åbner den eksporterede fil, kan jeg se, at begge disse felter er eksporteret, plus _id
felt:
{"_id":1.0,"name":"Wag","type":"Dog"} {"_id":2.0,"name":"Bark","type":"Dog"} {"_id":3.0,"name":"Meow","type":"Cat"} {"_id":4.0,"name":"Scratch","type":"Cat"} {"_id":5.0,"name":"Bruce","type":"Bat"} {"_id":6.0,"name":"Fetch","type":"Dog"} {"_id":7.0,"name":"Jake","type":"Dog"}
Adgangskontrol/godkendelse
Hvis du ikke bruger localhost, kan du bruge --host
parameter for at angive værten og --port
for at angive porten. Du kan også bruge --username
parameter for at angive brugernavnet og --password
til for adgangskoden. Hvis du udelader adgangskodeparameteren, bliver du bedt om det. Der er også en --authenticationDatabase
parameter til at angive den godkendelsesdatabase, hvor brugeren er oprettet.
Eksempel:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --out=data/pets.json
Se efter mongoexport
mongoexport
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/mongoexport
installeret, prøv at køre følgende kommando i din terminal eller kommandoprompt for at kontrollere:
mongoexport --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 mongoexport
kommandoer fra dit systems kommandolinje (f.eks. et nyt terminal- eller kommandopromptvindue).
Kør dem ikke fra mongo
skal.