MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Импортирайте JSON файл в MongoDB с mongoimport

Когато използвате 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 черупка.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да използвате променливи във функцията за намаляване на картата на MongoDB

  2. mongodb 3.4.3 Отказано разрешение wiredtiger_kv_engine.cpp 267 грешка с ubuntu 16

  3. Често срещани въпроси за интервю за MongoDB

  4. Създаване на нови колекции Meteor в движение

  5. Как да копирам база данни от един сървър на MongoDB на друг?