Инструментите за база данни на MongoDB включват помощна програма, наречена mongoexport което ви позволява да експортирате данни на MongoDB в CSV или JSON файл.
Тази статия ви показва как да използвате mongoexport за да експортирате колекция MongoDB в JSON файл.
Синтаксис
Синтаксисът за mongoexport става така:
mongoexport --collection=<coll> <options> <connection-string>
Трябва да стартирате mongoexport команди от командния ред на вашата система (например нов прозорец на терминал или команден ред).
Не стартирайте mongoexport команди от mongo черупка.
Експортиране на колекция
Следният примерен код експортира колекция от MongoDB в JSON файл:
mongoexport --db=PetHotel --collection=pets --out=data/pets.json
Това експортира колекция, наречена pets от PetHotel база данни във файл, наречен pets.json в data/ папка.
Ако папката не съществува, тя е създадена. Същото и с файла. Между другото, това предполага, че няма проблеми с разрешенията при записване на файл на посоченото място.
В този пример не посочих никакъв хост, порт, удостоверяване и т.н., така че той експортира колекцията от екземпляра на MongoDB, работещ на номера на порта по подразбиране на localhost 27017 .
Горният пример може да бъде написан също така:
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --out=data/pets.json
В този случай добавихме --type параметър и --fields параметър, за да посочите кои полета да се включат във файла JSON.
По-долу е обяснение на параметрите, които предоставихме тук.
| Параметър | Описание |
|---|---|
--db или -d | Указва базата данни, която съдържа колекцията, която искаме да експортираме. В този случай базата данни се нарича PetHotel . Алтернативно този параметър може да бъде предаден с помощта на -d (вместо --db ). |
--collection или -c | Указва колекцията, която искаме да експортираме. В този случай колекцията се нарича pets . Алтернативно този параметър може да се предава като -c (вместо --collection ). |
--type | Указва типа на експортирания файл. В този случай указваме json за да го експортирате в JSON файл. json е стойността по подразбиране, така че ако не посочим този параметър, файлът се извежда като JSON файл. |
--fields | Указва полетата, които искаме да експортираме. Имаме възможност да експортираме всички полета в колекцията или само някои. Разделете няколко имена на полета със запетая. Когато експортирате в JSON, указването на имена на полета не е задължително (за разлика от CSV). |
--out | Указва името на експортирания файл и къде ще се намира. Ако не посочите име на файл, mongoexport записва данни в стандартен изход (stdout ). |
Проверете експортирания файл
Нека проверим дали операцията по експортиране работи според очакванията.
Първо, нека проверим оригиналната колекция.
use PetHotel
db.pets.find() Резултат:
{ "_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 } Така можем да видим, че има 7 домашни любимци, всички със същите полета, които посочихме в нашата операция за експорт.
Сега нека отворим експортирания файл pets.json за да видите какво има вътре:
{"_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} Всички данни са в експортирания файл, както се очаква.
По-малко полета
Можете да използвате --fields параметър, за да посочите кои полета искате да експортирате.
Когато правите това с JSON файлове, _id полето винаги се експортира (дори когато не го включите в списъка с полета за експорт).
Пример:
mongoexport --db=PetHotel --collection=pets --fields=name,type --out=data/pets.json В този случай посочвам две полета за експортиране.
Когато отворя експортирания файл, мога да видя, че и двете полета са експортирани, плюс _id поле:
{"_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"} Контрол на достъпа/Удостоверяване
Ако не използвате localhost, можете да използвате --host параметър за определяне на хоста и --port за да посочите порта. Можете също да използвате --username параметър за определяне на потребителското име и --password до за паролата. Ако пропуснете параметъра за парола, ще бъдете подканени да го въведете. Има и --authenticationDatabase параметър за определяне на базата данни за удостоверяване, където е създаден потребителят.
Пример:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --out=data/pets.json Проверете за mongoexport
mongoexport е част от пакета MongoDB Database Tools. Инструментите за база данни на MongoDB са набор от помощни програми от командния ред за работа с MongoDB.
Ако не сте сигурни дали имате MongoDB Database Tools/mongoexport инсталиран, опитайте да изпълните следната команда във вашия терминал или команден ред, за да проверите:
mongoexport --version Ако го имате, трябва да видите информация за версията и т.н. Ако го нямате, можете да използвате инструкциите за инсталиране на уебсайта на MongoDB, за да го инсталирате на вашата система.
Къде да изпълнявам командите?
Не забравяйте, че трябва да стартирате mongoexport команди от командния ред на вашата система (например нов прозорец на терминал или команден ред).
Не ги стартирайте от mongo черупка.