web-dev-qa-db-fra.com

Comment mongoimporter sur un serveur distant

J'essaie de créer un site Web simple qui affiche un tableau basé sur des données json relativement petites (> 5 Mo). J'ai l'intention d'importer le json dans MongoDB et d'effectuer des requêtes à l'aide d'un pilote (Mongoose ou PyMongo). Comme la taille des données est très petite, j'aimerais éviter d'utiliser le service cloud afin de ne payer que les coûts du serveur.

J'ai essayé de me familiariser avec mongoimport en essayant cela sur ma machine locale. J'ai réussi à importer les données localement, mais j'aimerais maintenant le faire sur le serveur distant.

Comment feriez-vous cela sur un serveur distant? Si je comprends bien, mongod devrait être exécuté en arrière-plan pour démarrer mongo ou mongoimport. Comment y parvenir avec une seule fenêtre? Existe-t-il un guide que certains d'entre vous ont trouvé utile pour effectuer ce type de travail?

5
chachacha

Étant donné que la taille de vos données est petite, je vous recommande d'utiliser MongoDB Atlas . Créez un cluster et mongoimport à l'aide de l'URI qui se trouve dans votre cluster (Connect -> Connect Your Application -> Connection String Only).

Pour mongoimport,

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

où vous devez spécifier: 1) "URI" 2) collectionName 3) localFileLocation.

Une fois que mongoimport fonctionne, vous pouvez interroger les données du cloud via Mongo Shell après avoir récupéré la chaîne de connexion (Connexion -> Connexion avec Mongo Shell -> Chaîne de connexion uniquement)

mongo "connectionString" --username yourUsername

où vous devez spécifier: 1) "connectionString" 2) votre nom d'utilisateur.

Maintenant, saisissez votre mot de passe associé au cluster que vous avez créé, puis vous devez être connecté et prêt à interroger les données contenues dans Mongo Atlas à partir de la ligne de commande.

1
mysl

Pour importer un fichier csv de votre machine locale vers un serveur distant:

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

pour importer le fichier json

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

--Host Spécifie le nom d'hôte (dans votre cas c'est l'adresse de votre serveur distant) par défaut c'est localhost.

--port Spécifie le port sur lequel le serveur mongo est exécuté sur votre serveur distant par défaut, il est 27017.

--file Spécifie l'emplacement et le nom d'un fichier contenant les données à importer.

1

Vous pouvez directement utiliser la commande officielle mongoimport, à partir d'un Shell.

Ci-dessous un exemple complet:

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

Vous pouvez ajouter l'option --jsonArray si json contient un tableau .

Vous pouvez ajouter l'option --type csv, si votre fichier n'est pas un json mais un csv .

Plus d'informations: https://docs.mongodb.com/manual/reference/program/mongoimport/#bin.mongoimport

0
veben