55

Meteor の実行中に、Python クライアントから Meteor の MongoDB にアクセスしたいと考えています。

Meteor のデータベースがロックされているため、mongod を起動できません。

別のクライアントからデータベースにアクセスするにはどうすればよいですか?

4

6 に答える 6

70

meteorコマンドはクリーンな方法を提供します。実行中の mongod の URL を取得するには:

meteor mongo -U

Pythonから解析できます。

于 2012-04-24T21:55:22.033 に答える
37

コマンドを実行すると、Meteor はポート 3002 で mongod を起動しmeteor、mongo データ ファイルを.meteor/local/db

からの出力ps aux | grep 'mongod'は、meteor が使用する mongod コマンドを示しています。

/usr/local/meteor/mongodb/bin/mongod --bind_ip 127.0.0.1 --smallfiles --port 3002 --dbpath /path/to/your/project/.meteor/local/db

したがって、それに応じてmongoクライアントを接続してください。パイソンでは:

>>> import pymongo
>>> con = pymongo.Connection(host='127.0.0.1', port=3002)
>>> con.database_names()
[u'meteor', u'local']

更新: 残念ながら、この方法で mongo に直接変更を加えても、アプリには反映されませんが、変更はページ全体 (再) 読み込みに反映されます。

于 2012-04-24T16:43:10.357 に答える
6

Meteor の導入手順を使用する

コマンドは次のようになります。

   PORT=3000 MONGO_URL=mongodb://localhost:27017/myapp node bundle/main.js
于 2012-04-24T08:16:57.627 に答える
2

次を使用して、サーバー側のコード内から見つけることもできます。

process.env.MONGO_URL

実行時にこの環境変数を設定しなくても、デフォルトに設定されます。これは、内部で見つかった方法のようです (packages/mongo/remote_collection_driver.js)

によって与えられたものはmeteor mongo -U、デフォルトのドメイン/ IP とデータベース名を再構築するようですが、ファイルに保存されているポートを使用します。

これをサーバー フォルダーの任意の場所に配置し、コマンド ラインから読み取ることができます。

console.log('db url: ' + process.env.MONGO_URL);

テストデータベースを使用していて、ライブデータを上書きしていないことをセレンテストで再確認するために、それを表示するWebページを設定しました。

于 2016-01-14T12:22:04.980 に答える
0

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

````

于 2013-11-15T21:04:29.697 に答える