web-dev-qa-db-ja.com

Meteorプロジェクトで既存のMongoDBを使用するにはどうすればよいですか?

GUIクライアント用に実行中のMongoDBサーバーが( wxPython によって)しばらくの間存在するとしましょう。

新しいMeteorプロジェクトを既に存在するMongoDBに接続するにはどうすればよいですか?

84
Drake Guan

環境変数MONGO_URLを使用します。何かのようなもの:

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

置換your_db with meteorまたは使用する任意のdb。

156
Dror

npmを使用します。

  • まだない場合は、package.jsonnpm initファイルを作成します。

  • そのファイルに次の行を入力して変更します(すべての<...>を置き換えます)。

"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
  • npm run meteorだけでmeteorを開始できます
14
malix

ダニーの回答へのコメントトムワイスマンの推奨 パッケージング/mongo-livedata/mongo_driver.js、21行目。より良い場所はapp/meteor/run.js、460行目です。このように環境HerokuでMeteorを実行している場合など、存在する場合は変数が引き続き選択されます。デフォルトのハードコードされたmongodb://127.0.0.1をMongoDBサーバーの場所に変更するだけです。

9
David Wihl

Db.copyDatabaseを使用してこれを行うことができますが、バグがあり、Meteorのデータを更新できないことに注意してください。 https://github.com/meteor/meteor/issues/61 を参照してください

Meteorの開発バージョンを使用している場合、Meteorアプリを起動してから実行中のMongoDBサーバーからデータを転送できます。

mongo --port 3002

これにより、MeteorアプリのMongoサーバーに接続されます。次のようにdb.copyDatabaseを使用します。

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

これにより、localhostの標準ポートで実行されているMongoDBサーバーからデータベースmyappDatabaseがMeteorアプリMongoサーバーにコピーされます。 Meteorアプリが使用するデータベース名は「meteor」です。

4
Josh Wulf

データをMeteor MongoDBデータベースにコピーするだけです。Meteorを既存のデータベースに接続しようとする理由はありません。

mongoexportを使用してコレクションを個別にダンプしてから、mongoimportを使用して、Meteor MongoDBインスタンスのmeteorという名前のデータベースにファイルをインポートします。 Meteor MongoDBインスタンスは、bind_address 127.0.0.1でポート3002で実行され、データファイルはMeteorプロジェクトサブディレクトリ.meteor/local/db

MongoDBのインポート/エクスポートに慣れていない場合は、 ドキュメント を参照してください。

2
danny

Localhostの代わりに、デジタルオーシャンドロップサーバーのIPを追加するだけで機能しました。

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

編集:MUPを使用して流星プロジェクトを展開します。 https://github.com/zodern/meteor-up

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

MupはDockerを使用し、2つのコンテナーを「リンク」するため、同じVM(サーバー)でアプリとmongoの両方をホストします。mongoDBはセキュリティのためにパブリックIPからアクセスできません理由。

0
Milean