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.