在Meteor.js中使用多个Mongodb数据库

在Meteor.js中使用多个Mongodb数据库,第1张

在Meteor.js中使用多个Mongodb数据库 更新资料

现在可以连接到远程/多个数据库:

var database = new MongoInternals.RemoteCollectionDriver("<mongo url>");MyCollection = new Mongo.Collection("collection_name", { _driver: database });

<mongo_url>
mongodb url 在哪里,例如
mongodb://127.0.0.1:27017/meteor
(带有数据库名称)

目前,这样做有一个缺点:没有Oplog

旧答案

目前这是不可能的。每个流星应用程序都绑定到一个数据库。

有几种方法可以解决此问题,但其价值可能更复杂:

一种选择-使用单独的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 collectionCats.call("updateCat", <cat_id>, <changes);
另一种选择-自定义mongodb连接

这使用了节点js mongodb本机驱动程序。

就像在其他任何节点js应用程序中一样,这将连接到数据库。

没有 可用的反应,你不能使用

new Meteor.Collection
类型的集合。

var mongodb = Npm.require("mongodb"); //or var mongodb = Meteor.require("mongodb") //if you use npm package on atmospherevar 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();   });});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5126639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存