更新
リモート/複数のデータベースに接続できるようになりました:
var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });
<mongo_url>
の場所 mongodb://127.0.0.1:27017/meteor
などのmongodbURLです。 (データベース名付き)
現時点では、これには1つの欠点があります。Oplogがない
古い答え
現時点ではこれは不可能です。各流星アプリは1つのデータベースにバインドされています。
これを回避する方法はいくつかありますが、その価値よりも複雑な場合があります。
1つのオプション-別のMeteorアプリを使用する
他のmeteorアプリ(同じマシンのポート6000で実行されている例)。反応性は維持できますが、メソッド呼び出しを介して挿入、削除、更新をプロキシする必要があります
サーバー:
Cats = Meteor.Collection('cats')
Meteor.publish("cats", function() {
return Cats.find();
});
Meteor.methods('updateCat, function(id, changes) {
Cats.update({_id: id}, {$set:changes});
});
現在のMeteorアプリ:
var connection = DDP.connect("http://localhost:6000");
connection.subscribe("cats");
Cats = Meteor.Collection('cats', {connection: connection});
//To update a collection
Cats.call("updateCat", <cat_id>, <changes);
別のオプション-カスタムmongodb接続
これは、ノードjsmongodbネイティブドライバーを使用します。
これは、他のノードのjsアプリで行うのと同じようにデータベースに接続しています。
ありません 反応性が利用可能であり、new Meteor.Collection
を使用することはできません コレクションを入力します。
var mongodb = Npm.require("mongodb"); //or var mongodb = Meteor.require("mongodb") //if you use npm package on atmosphere
var db = mongodb.Db;
var mongoclient = mongodb.MongoClient;
var Server = mongodb.Server;
var db_connection = new Db('cats', new Server("127.0.0.1", 27017, {auto_reconnect: false, poolSize: 4}), {w:0, native_parser: false});
db.open(function(err, db) {
//Connected to db 'cats'
db.authenticate('<db username>', '<db password>', function(err, result) {
//Can do queries here
db.close();
});
});