Когато използвате mongoimport
, можете да използвате --jsonArray
параметър за импортиране на масив от JSON документи.
Пример
Да предположим, че имаме следния JSON документ, наречен pets_array.json
:
[
{"_id":1.0,"name":"Wag","type":"Dog"},
{"_id":2.0,"name":"Bark","type":"Dog"},
{"_id":3.0,"name":"Meow","type":"Cat"}
]
Ако се опитаме да импортираме това в MongoDB без използвайки --jsonArray
параметър, получаваме следната грешка:
2021-01-03T13:52:58.360+1000 no collection specified 2021-01-03T13:52:58.360+1000 using filename 'pets_array' as collection 2021-01-03T13:52:58.366+1000 connected to: mongodb://localhost/ 2021-01-03T13:52:58.371+1000 Failed: cannot decode array into a D 2021-01-03T13:52:58.371+1000 0 document(s) imported successfully. 0 document(s) failed to import.
По принцип не може да декодира масива в документ.
За да коригираме това, можем просто да добавим --jsonArray
параметър:
mongoimport --db=PetHotel --jsonArray --file=pets_array.json
Изход:
2021-01-03T13:58:13.407+1000 no collection specified 2021-01-03T13:58:13.408+1000 using filename 'pets_array' as collection 2021-01-03T13:58:13.421+1000 connected to: mongodb://localhost/ 2021-01-03T13:58:13.450+1000 3 document(s) imported successfully. 0 document(s) failed to import.
Това ни казва, че и трите документа са импортирани успешно.
Сега можем да разгледаме колекцията, за да проверим:
db.pets_array.find()
Резултат:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : 2, "name" : "Bark", "type" : "Dog" }
Както се очакваше, и трите документа са в новосъздадената колекция.
Колекцията е новосъздадена, защото не сме посочили колекция, в която да импортираме документите. Ако имахме, те щяха да бъдат импортирани в посочената колекция.
Нямате mongoimport
?
mongoimport
е част от пакета MongoDB Database Tools. Инструментите за база данни на MongoDB са набор от помощни програми от командния ред за работа с MongoDB.
Ако не сте сигурни дали имате MongoDB Database Tools/mongoimport
инсталиран, опитайте да изпълните следната команда във вашия терминал или команден ред, за да проверите:
mongoimport --version
Ако го имате, трябва да видите информация за версията и т.н. Ако го нямате, можете да използвате инструкциите за инсталиране на уебсайта на MongoDB, за да го инсталирате на вашата система.
Къде да стартирате mongoimport
Команди?
Трябва да стартирате mongoimport
команди от командния ред на вашата система (например нов прозорец на терминал или команден ред).
Не ги стартирайте от mongo
черупка.