Uppdatera
Det är nu möjligt att ansluta till fjärr-/flera databaser:
var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });
Där <mongo_url>
är en mongodb-url som mongodb://127.0.0.1:27017/meteor
(med databasens namn)
Det finns en nackdel med detta för tillfället:Ingen Oplog
Gammalt svar
För närvarande är detta inte möjligt. Varje meteorapp är bunden till en databas.
Det finns några sätt du kan komma runt detta på, men det kan vara mer komplicerat än det är värt:
Ett alternativ - Använd en separat Meteor-app
I din andra meteor-app (exempel körs vid port 6000 på samma maskin). Du kan fortfarande ha reaktivitet men du måste infoga, ta bort och uppdatera proxy genom ett metodanrop
Server:
Cats = Meteor.Collection('cats')
Meteor.publish("cats", function() {
return Cats.find();
});
Meteor.methods('updateCat, function(id, changes) {
Cats.update({_id: id}, {$set:changes});
});
Din nuvarande Meteor-app:
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);
Ett annat alternativ - anpassad mongodb-anslutning
Detta använder noden js mongodb inbyggda drivrutinen.
Detta ansluter till databasen som om du skulle göra i vilken annan node js-app som helst.
Det finns ingen reaktivitet tillgänglig och du kan inte använda den new Meteor.Collection
typsamlingar.
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();
});
});