MongoDB

Как импортировать JSON в MongoDB

Чтобы импортировать JSON в MongoDB, используйте mongoimport из MongoDB Database Tools. Главное — понять формат файла: это может быть массив JSON-документов или формат JSON Lines, где каждый документ идет отдельной строкой. От этого зависит команда импорта

Пример файла products.json как массив:

[
  { "title": "Худи", "price": 4900 },
  { "title": "Кроссовки", "price": 7990 }
]

Команда:

mongoimport \
  --uri="mongodb://localhost:27017" \
  --db=shop \
  --collection=products \
  --file=products.json \
  --jsonArray

Ключ --jsonArray нужен, если файл содержит массив

Если файл в формате JSON Lines

Файл:

{ "title": "Худи", "price": 4900 }
{ "title": "Кроссовки", "price": 7990 }

Команда:

mongoimport \
  --uri="mongodb://localhost:27017" \
  --db=shop \
  --collection=products \
  --file=products.json

Для такого формата --jsonArray не нужен

Заменить коллекцию перед импортом

Если нужно удалить старые документы и загрузить новые:

mongoimport \
  --uri="mongodb://localhost:27017" \
  --db=shop \
  --collection=products \
  --file=products.json \
  --jsonArray \
  --drop

--drop удалит коллекцию перед импортом. Используйте его только там, где вы точно готовы потерять старые данные

Как проверить результат

Откройте mongosh:

mongosh

Проверьте количество:

use shop
db.products.countDocuments()

Проверьте первый документ:

db.products.findOne()

Если документы появились, импорт прошел

Импорт на удаленную MongoDB

Для удаленного сервера укажите полный connection string:

mongoimport \
  --uri="mongodb://appuser:password@server.example.com:27017/shop" \
  --collection=products \
  --file=products.json \
  --jsonArray

Если пароль содержит специальные символы, их нужно корректно экранировать в URI. Для MongoDB Atlas обычно используют строку подключения с mongodb+srv://

Что проверить перед импортом

Перед запуском откройте JSON-файл и проверьте одну запись. Поля должны совпадать с тем, что ожидает приложение: price числом, даты в понятном формате, id без случайных повторов. Если файл большой, сначала импортируйте маленький тестовый кусок в отдельную коллекцию:

mongoimport \
  --uri="mongodb://localhost:27017" \
  --db=shop \
  --collection=products_test \
  --file=products-small.json \
  --jsonArray

Так вы увидите ошибки формата до массовой загрузки

Частые ошибки

Забыли —jsonArray

Если файл начинается с [ и содержит массив, добавьте --jsonArray

Неправильный JSON

Проверьте запятые, кавычки и закрывающие скобки. Один битый документ может остановить импорт

Импортировали не в ту базу

Проверьте --db и --collection. Часто документ уже есть, но в другой базе

Перезаписали коллекцию через —drop

Не используйте --drop на рабочей базе без резервной копии

Импортировали строки вместо чисел

Если в JSON цена записана как "4900", MongoDB сохранит строку. Фильтр по числам потом будет работать не так, как ожидается

После импорта откройте один документ и проверьте типы глазами. Это быстрее, чем потом искать, почему сортировка или фильтр ведут себя странно

Что почитать дальше по MongoDB

Если нужен общий маршрут по теме, откройте рубрику MongoDB. Для соседних задач пригодятся эти разборы:

Как проверить результат на практике

Для MongoDB-материала полезно делать три проверки: сначала выполнить команду на маленьком наборе тестовых документов, затем посмотреть результат через find() или MongoDB Compass, а после этого повторить действие на копии реальной структуры данных. Если запрос меняет документы, сначала запускайте его с фильтром на один документ и только потом расширяйте условие

Еще одна хорошая привычка — записывать исходное состояние и ожидаемый результат. Например: было три документа, после обновления изменился только один; был массив из пяти элементов, после операции остался нужный элемент; индекс появился в getIndexes(). Такая проверка быстро показывает, что вы исправили именно задачу, а не просто получили команду без ошибки

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x