Как получить доступ к MongoDB Meteor от другого клиента, пока Meteor работает?
Я хотел бы получить доступ к MongoDB Meteor из клиента Python,в то время как метеор работает.
Я не могу запустить mongod, потому что база данных Meteor заблокирована.
Как мне получить доступ к базе данных с другого клиента?
6 ответов:
The обеспечивает чистый способ. Чтобы получить URL для запущенного mongod:
meteor mongo -U
который вы можете разобрать из python.
Meteor запускает mongod для вас на порту 3002, когда вы запускаете
meteor
команда и сохраняет файл данных mongo в.meteor/local/db
вывод
ps aux | grep 'mongod'
показывает команду mongod, которую использует meteor:/usr/local/meteor/mongodb/bin/mongod --bind_ip 127.0.0.1 --smallfiles --port 3002 --dbpath /path/to/your/project/.meteor/local/db
так что просто подключите ваш клиент mongo соответственно. В python:
>>> import pymongo >>> con = pymongo.Connection(host='127.0.0.1', port=3002) >>> con.database_names() [u'meteor', u'local']
обновление: к сожалению, внесение изменений непосредственно в mongo таким образом не будет отражать жить в приложении, но изменения будут отражены на полной странице (re)загрузки.
использовать инструкции по развертыванию Метеор
команда будет выглядеть так:
PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
вы также можете найти его из кода на стороне сервера, используя:
process.env.MONGO_URL
даже если вы не устанавливаете эту переменную среды при запуске, она получает значение по умолчанию. Это похоже на то, как он находится внутри (packages/mongo/remote_collection_driver.js)
один дается
meteor mongo -U
Кажется, чтобы восстановить домен по умолчанию / ip и db-name, но использовать порт, хранящийся в файле.вы можете поместить это в любом месте в папке сервера, и прочитать его из командная строка.
console.log('db url: ' + process.env.MONGO_URL);
Я настроил веб-страницу для ее отображения, чтобы дважды проверить тесты selenium, которые мы используем в тестовой базе данных, а не перезаписывать текущие данные.
и вот скрипт оболочки для получения Mongo URI и Mongo Database:
#!/bin/bash -eux read -s -p "Enter Password: " password cmd=$(meteor mongo --url myapp.meteor.com << ENDPASS $password ENDPASS) mongo_uri=$(echo $cmd | cut -f2 -d" ") mongo_db=$(echo $mongo_uri | cut -d/ -f 4) #my_client_command_with MONGODB_URI=$mongo_uri MONGO_DB=$mongo_db
``
в отношении 10-секундной задержки обновлений: хвост MongoDB oplog! Больше информации о том, как это сделать здесь:
http://meteorhacks.com/lets-scale-meteor.html
убедитесь, что вы устанавливаете смарт-коллекции и используете их (создайте свои коллекции с помощью Meteor.SmartCollection вместо Meteor.Сборник) и вы найдете обновления, по существу немедленно.