Cập nhật
Giờ đây, có thể kết nối với cơ sở dữ liệu từ xa / nhiều cơ sở dữ liệu:
var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");
MyCollection = new Mongo.Collection("collection_name", { _driver: database });
Ở đâu <mongo_url>
là url mongodb chẳng hạn như mongodb://127.0.0.1:27017/meteor
(với tên cơ sở dữ liệu)
Có một bất lợi với điều này vào lúc này:Không có Oplog
Câu trả lời cũ
Hiện tại điều này là không thể. Mỗi ứng dụng sao băng được liên kết với một cơ sở dữ liệu.
Có một số cách bạn có thể giải quyết vấn đề này nhưng có thể phức tạp hơn nhưng giá trị của nó:
Một tùy chọn - Sử dụng ứng dụng Meteor riêng biệt
Trong ứng dụng sao băng khác của bạn (ví dụ chạy ở cổng 6000 trên cùng một máy). Bạn vẫn có thể có khả năng phản hồi nhưng bạn cần chèn proxy, xóa và cập nhật thông qua lệnh gọi phương thức
Máy chủ:
Cats = Meteor.Collection('cats')
Meteor.publish("cats", function() {
return Cats.find();
});
Meteor.methods('updateCat, function(id, changes) {
Cats.update({_id: id}, {$set:changes});
});
Ứng dụng Meteor hiện tại của bạn:
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);
Một tùy chọn khác - kết nối mongodb tùy chỉnh
Điều này sử dụng trình điều khiển gốc js mongodb của nút.
Điều này đang kết nối với cơ sở dữ liệu như thể bạn làm trong bất kỳ ứng dụng js nút nào khác.
Có không khả năng phản ứng có sẵn và bạn không thể sử dụng new Meteor.Collection
nhập bộ sưu tập.
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();
});
});