Как монгоимпортировать на удаленный сервер

Я пытаюсь создать простой веб-сайт, который отображает таблицу на основе относительно небольших данных json (> 5 МБ). Я планирую импортировать json в MongoDB и выполнять запросы с использованием драйвера (либо Mongoose, либо PyMongo). Поскольку размер данных очень мал, я бы хотел не использовать облачный сервис, чтобы оплачивать только стоимость сервера.

Я попытался ознакомиться с mongoimport, попробовав это на своей локальной машине. Мне удалось импортировать данные локально, но теперь я хотел бы сделать это на удаленном сервере.

Как бы вы сделали это на удаленном сервере? Насколько я понимаю, mongod должен работать в фоновом режиме, чтобы запустить mongo или mongoimport. Как вы достигаете этого с одним окном? Есть ли руководство, которое кто-нибудь из вас нашел полезным при выполнении такой работы?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
11
0
9 856
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Чтобы импортировать CSV-файл с локального компьютера на удаленный сервер:

mongoimport --host "hostname" --port "port" --db "databasename" --collection "collectionName" --file "filePath" --type csv --headerline

для импорта файла json

mongoimport --host "hostname" --port "port" --db "databasename" --collection "collectionName" --file "filePath"

--host Указывает имя хоста (в вашем случае это адрес вашего удаленного сервера) по умолчанию это localhost.

--port Указывает порт, на котором работает сервер mongo на вашем удаленном сервере, по умолчанию это 27017.

--file Указывает расположение и имя файла, содержащего данные для импорта.

Ответ принят как подходящий

Поскольку размер ваших данных невелик, я бы рекомендовал использовать Атлас MongoDB. Создайте кластер и mongoimport, используя URI, который можно найти в вашем кластере (Подключение -> Подключить приложение -> Только строка подключения).

В монгоимпорт,

mongoimport --uri "URI" --drop --collection collectionName --file localFileLocation

где нужно указать: 1) "URI" 2) collectionName 3) localFileLocation.

Как только mongoimport заработает, вы можете запросить облачные данные через оболочку Mongo после извлечения строки подключения (Подключиться -> Подключиться к оболочке Mongo -> Только строка подключения)

mongo "connectionString" --username yourUsername

где нужно указать: 1) "connectionString" 2) yourUsername.

Теперь введите свой пароль, связанный с созданным вами кластером, после чего вы должны быть подключены и готовы запрашивать данные, хранящиеся в Mongo Atlas, из командной строки.

Вы можете напрямую использовать официальную команду mongoimport из оболочки.

Ниже полный пример:

mongoimport -h localhost:27018 -d developer-database -c developer-collection -u root -p root --authenticationDatabase admin --file data-local.json

Вы можете добавить опцию --jsonArray, если ваш json содержит множество.

Вы можете добавить опцию --type csv, если ваш файл не json, а CSV.

Дополнительная информация: https://docs.mongodb.com/manual/reference/program/mongoimport/#bin.mongoimport

Другие вопросы по теме