Comment utiliser un MongoDB existant dans un projet Meteor?

Disons qu’il y a un serveur MongoDB actif pour un client GUI (par wxPython ) pendant un moment.

Comment pourrais-je connecter mon nouveau projet Meteor à mon MongoDB déjà existant ?

    Utilisez la variable d’environnement MONGO_URL. Quelque chose comme:

    export MONGO_URL=mongodb://localhost:27017/your_db 

    Remplacez your_db par meteor ou la firebase database que vous souhaitez utiliser.

    Nous utilisons npm :

    • Créez un fichier package.json avec npm init , si vous n’en avez pas déjà un.

    • Entrez et modifiez la ligne suivante dans ce fichier (en remplaçant tous les <...> ):

     "scripts": {"meteor": "MONGO_URL=mongodb://:@:/ meteor"} 
    • Vous pouvez alors démarrer meteor avec juste npm run meteor

    Dans les commentaires sur la réponse de danny, Tom Wijsman recommande de corriger les paquets / mongo-livedata / mongo_driver.js, ligne 21. Un meilleur endroit est app / meteor / run.js, ligne 460. De cette manière, la variable d’environnement est toujours détectée , comme lors de l’exécution de Meteor sur Heroku. Changez simplement le mongodb par défaut: //127.0.0.1 par défaut à l’emplacement de votre serveur MongoDB.

    Vous pouvez utiliser db.copyDatabase pour faire cela, mais il y a un bogue et vous ne pouvez pas mettre à jour les données dans Meteor. Voir https://github.com/meteor/meteor/issues/61

    Si vous utilisez la version de développement de Meteor, vous pouvez transférer des données depuis un serveur MongoDB en cours d’exécution en démarrant votre application Meteor, puis en procédant comme suit:

     mongo --port 3002 

    Cela vous connectera au serveur Mongo de l’application Meteor. Maintenant, utilisez db.copyDatabase comme ceci:

     db.copyDatabase('myappDatabase', 'meteor', 'localhost'); 

    Cela copiera la firebase database myappDatabase à partir d’un serveur MongoDB exécuté sur le port standard sur localhost, vers le serveur Mongo de l’application Meteor. Le nom de firebase database utilisé par l’application Meteor est «meteor».

    Il suffit de copier les données dans la firebase database Meteor MongoDB – il n’ya aucune raison d’essayer d’accrocher Meteor à la firebase database existante et de risquer de réécrire les choses.

    Utilisez mongoexport pour vider vos collections individuellement, puis mongoimport pour importer les fichiers dans la firebase database nommée meteor dans l’instance de Meteor MongoDB. L’instance Meteor MongoDB s’exécute sur le port 3002 avec bind_address 127.0.0.1 et les fichiers de données se trouvent dans le sous-répertoire du projet Meteor .meteor/local/db .

    Voir la documentation si vous n’êtes pas familier avec l’importation / exportation dans MongoDB.

    Tout ce que j’ai fait a été d’append l’adresse IP de mon serveur de gouttelettes océaniques numériques, au lieu de localhost, et cela a fonctionné:

     env: { ROOT_URL: 'http://yourdomain.com', MONGO_URL: 'mongodb://104.236.24.66:27017/meteor', PORT: 3002, }, 

    EDIT: utilisez MUP pour déployer vos projets meteors: https://github.com/zodern/meteor-up

     env: { ROOT_URL: 'https://www.example.com', MONGO_URL: 'mongodb://localhost/meteor', }, 

    Mup utilise Docker et “liera” vos 2 conteneurs, hébergeant ainsi l’application et mongo sur la même VM (serveur). Votre mongoDB ne doit pas être accessible depuis l’IP publique pour des raisons de sécurité.

    Vous devez garder votre application en cours d’exécution dans une fenêtre de terminal, puis en ouvrir une autre et taper “meteor mongo” et cela devrait fonctionner!