Javascript 流星保持反应中的多重分贝
有什么方法可以使用多个MongoDB数据库来保持meteor/Oplog工作?我一直在读关于它的书,但我仍然没有看到一个实现这一目标的捷径。有可能吗?正确的方法是什么?谢谢。我将把我迄今为止的发现写在这里,但我不会把这个问题标记为已回答 概念 什么是反应性? 使用反应性,您向用户显示的数据将实时更新。您可以在订阅集合时启用或禁用反应性。像这样:Javascript 流星保持反应中的多重分贝,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,有什么方法可以使用多个MongoDB数据库来保持meteor/Oplog工作?我一直在读关于它的书,但我仍然没有看到一个实现这一目标的捷径。有可能吗?正确的方法是什么?谢谢。我将把我迄今为止的发现写在这里,但我不会把这个问题标记为已回答 概念 什么是反应性? 使用反应性,您向用户显示的数据将实时更新。您可以在订阅集合时启用或禁用反应性。像这样: // enabled by default Meteor.publish('top', function() { return Top.find({
// enabled by default
Meteor.publish('top', function() {
return Top.find({},{reactive: false});
});
什么是oplog?
Oplog是MongoDB日志。当您告诉meteor使用oplog时,反应性能要好得多,除非您有大量的插入操作。在这种情况下,禁用它可能是明智的。Oplog可以优化您的反应式DB调用。如果要使用Oplog,您应该优化DB调用。你可以阅读更多关于它的内容
有什么方法可以将DBS连接到meteor?
默认连接:
反应性?对Oplog?对分贝限制?一个。描述:Meteor在运行“Meteor”时创建默认MongoDB数据库。您可以使用环境变量设置不同的数据库,或者只需MONGO\uURL即可=mongodb://localhost:27017/db_name 流星
DDP:
反应性?对Oplog?对分贝限制?没有。说明:你需要一个流星项目的每一个数据库。每一分贝的内存大约为600MB。你可以读到关于它的信息,然后
MongoInternal(解决方案:感谢carlevans719):
反应性?对Oplog?对分贝限制?否。说明:您可以在订阅文件中指定DB,如下所示:
ar database = new MongoInternals.RemoteCollectionDriver('mongodb://user:password@localhost:27017/meteor', {oplogUrl: "mongodb://localhost:27017/local"});
var numberOfDocs = database.open('boxes').find().count();
最后一句话:
MongoInternal如果你不打算使用默认的db,你必须告诉meteor不要创建它。要实现这一点,您必须始终将meteor作为
MONGO\uURL运行=mongodb://localhost:27017 流星
正如你所说<代码>默认连接并不是一个真正的选项,因为您只能拥有一个DB,DDP
在您只需要一个DB而不需要Meteor之类的东西时有点多余。因此,我认为最好的方法是使用mongonternals
选项
这个选项唯一缺少的是反应性;中提到了为这些附加DB连接启用oplog跟踪的方法。在创建RemoteCollectionDriver
时,基本上似乎传递了oplogUrl,下面是他们回答中给出的示例:
var driver = new MongoInternals.RemoteCollectionDriver(
"mongodb://localhost:27017/db",
{
oplogUrl: "mongodb://localhost:27017/local"
});
var collection = new Mongo.Collection("Coll", {_driver: driver});