Aggiorna
È ora possibile connettersi a database remoti/multipli:
var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });
Dove <mongo_url>
è un URL mongodb come mongodb://127.0.0.1:27017/meteor
(con il nome del database)
C'è uno svantaggio con questo al momento:No Oplog
Vecchia risposta
Al momento questo non è possibile. Ogni app meteor è associata a un database.
Ci sono alcuni modi per aggirare questo problema, ma potrebbe essere più complicato del suo valore:
Un'opzione:usa un'app Meteor separata
Nell'altra app meteor (esempio in esecuzione sulla porta 6000 sulla stessa macchina). Puoi ancora avere reattività, ma devi proxy inserimenti, rimozioni e aggiornamenti tramite una chiamata al metodo
Server:
Cats = Meteor.Collection('cats')
Meteor.publish("cats", function() {
return Cats.find();
});
Meteor.methods('updateCat, function(id, changes) {
Cats.update({_id: id}, {$set:changes});
});
La tua attuale app 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);
Un'altra opzione:connessione mongodb personalizzata
Questo utilizza il driver nativo del nodo js mongodb.
Questo si connette al database come se faresti in qualsiasi altra app js di nodo.
Non c'è non reattività disponibile e non puoi utilizzare il new Meteor.Collection
tipo raccolte.
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();
});
});