sql >> データベース >  >> NoSQL >> MongoDB

Meteorデータベース接続

    Meteorを使用してMongoDBに接続するにはどうすればよいですか?

    シナリオA:組み込みのDBをデフォルトとして使用する

    これはあなたがしたことよりもはるかに簡単です。 meteorを実行するとき 実際には、MeteorサーバーでDBを起動します。ここで、Meteorはポート3000でリッスンし、データベースはポート3001でリッスンします。Meteorアプリはすでにポート3001でこのデータベースに接続されており、meteorという名前のデータベースを使用します。 。 MongoInternals.RemoteCollectionDriverにフォールバックする必要はまったくありません。 。そのコードを削除して、次のように変更するだけです:

     Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection
    

    シナリオB:デフォルトとして別のDBを使用する

    MONGO_URLを使用する 環境変数Meteorサーバーの起動時に接続文字列をMongoDBに設定できます。ローカルポート3001データベースまたは認証されていない接続の代わりに、接続する場所と方法を正確に指定できます。次のようにMeteorサーバーを起動します:

    $ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor
    

    user:[email protected] 認証が必要ない場合は、コマンドの一部です。

    シナリオC:同じMeteorアプリから2番目(3番目など)のDBに接続します

    次に、MongoInternals.RemoteCollectionDriverを使用する必要があります 。 Meteorサーバーの起動時に定義されたデフォルトのDBではない別のデータベースを使用する場合は、アプローチを使用する必要があります。

    var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
    var numberOfDocs = database.open('boxes').find().count();
    

    ボーナス:MongoInternalsを使用しない理由 Mongo.Collectionを使用 ?

    ドキュメントに示されているように Mongo接続をnew Mongo.Collection()に渡さないでください コマンドですが、別のMeteorインスタンスへの接続のみです。つまり、DDP.connectを使用する場合 別のサーバーに接続するには、コードを使用できますが、MongoInternalsを混在させないでください。 Mongo.Collectionを使用 -それらは一緒にうまく機能しません。



    1. MongoDBは、コレクション内のリスト内の各dictを検索します

    2. Spring-Mongodbは列挙型を文字列ではなくintとして格納/取得します

    3. オブジェクトのMongoDBクエリIN配列

    4. サンタンデールのほぼリアルタイムのデータ取り込みアーキテクチャの内部(パート2)