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?
É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.
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.
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