Когато използвате MongoDB, можете да използвате mongoimport
за импортиране на документи в колекция. mongoimport
е помощна програма на командния ред, която импортира съдържание от разширен JSON, CSV или TSV файл. Файлът за импортиране може да е създаден от mongoexport
или някаква друга помощна програма за експортиране.
Тази статия представя примери за импортиране на JSON файл в MongoDB.
Пример
Да предположим, че имаме следния JSON файл, наречен pets.json
:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Следната команда импортира JSON файла в MongoDB:
mongoimport --db=PetHotel --file=pets.json
В този случай не посочих колекция, в която да я импортирам, затова създаде колекция със същото име на файла (pets
).
Проверете резултатите
Нека да разгледаме колекцията.
db.pets.find()
Резултат:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Виждаме, че документите са импортирани според очакванията.
Посочете името на колекцията
Можете да използвате --collection
(или -c
) параметър, за да посочите колекция, в която да импортирате файла.
Ето пример за използване на --collection
параметър за импортиране на същия файл в различна колекция:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json
Ако колекцията все още не съществува, тя ще бъде създадена. Ако вече съществува, тогава резултатът от импортирането ще зависи от режима, който използвате (повече за това по-долу).
Изхвърлете колекцията преди импортиране
Можете да използвате --drop
параметър, за да премахнете всяка съществуваща колекция със същото име като тази, която се опитвате да създадете/импортирате.
Представете си, че имаме втори файл, наречен pets2.json
, със следния документ:
{ "_id" : 4, "name" : "Bubbles" } { "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
Ето какво се случва, ако импортирам този документ в pets
колекция с помощта на --drop
опция:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json
Изход:
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.
Съобщението ни казва, че колекцията е премахната и един документ е импортиран.
Нека да разгледаме колекцията:
db.pets.find()
Резултат:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" } { "_id" : 4, "name" : "Bubbles" }
Както се очакваше, нашите два нови документа са единствените в колекцията.
Режими на импортиране
Има различни режими на импортиране, които можете да използвате с mongoimport
. Тези режими определят какво ще се случи, ако вече има съвпадащи документи в колекцията, в която се опитвате да импортирате.
Режимите са както следва:
Режим | Описание |
---|---|
insert | Това е режимът по подразбиране. Този режим вмъква документите от файла за импортиране. Ако съвпадащ документ вече съществува в колекцията, възниква грешка. Съвпадащ документ е този, който има същия уникален идентификатор (като съвпадащ _id поле) като документ във файла за импортиране. |
upsert | Заменя съществуващите документи в базата данни със съвпадащи документи от файла за импортиране. Всички останали документи са вмъкнати. |
merge | Обединява съществуващи документи, които съответстват на документ във файла за импортиране с новия документ. Всички останали документи са вмъкнати. |
delete | Изтрива съществуващи документи в базата данни, които съответстват на документ във файла за импортиране. Всички несъответстващи документи нямат ефект. |
Вижте Режимите на импортиране на mongoimport
за примери за всеки режим.
Проверете за mongoimport
mongoimport
е част от пакета MongoDB Database Tools. Инструментите за база данни на MongoDB са набор от помощни програми от командния ред за работа с MongoDB.
Ако не сте сигурни дали имате MongoDB Database Tools/mongoimport
инсталиран, опитайте да изпълните следната команда във вашия терминал или команден ред, за да проверите:
mongoimport --version
Ако го имате, трябва да видите информация за версията и т.н. Ако го нямате, можете да използвате инструкциите за инсталиране на уебсайта на MongoDB, за да го инсталирате на вашата система.
Къде да изпълнявам командите?
Не забравяйте, че трябва да стартирате mongoimport
команди от командния ред на вашата система (например нов прозорец на терминал или команден ред).
Не ги стартирайте от mongo
черупка.