【问题标题】:Meteor collection using existing database使用现有数据库收集流星
【发布时间】:2023-03-18 13:45:01
【问题描述】:
我是流星新手,找不到将现有数据库加载到流星的方法。
这里是场景。我有一个现有的带有集合“分析”的远程数据库,移动应用程序正在使用它来记录用户的数据。对于 Meteor 方面,我正在构建一个管理面板来加载分析数据以进行可视化。我成功连接到远程数据库,但是我无法在 Meteor 中显示任何数据。
这是我的代码:
Analytics = new Mongo.Collection('analytics');
console.log(Analytics.find().fetch());
即使集合不为空,它也会显示空数组。
【问题讨论】:
标签:
node.js
meteor
content-management-system
【解决方案1】:
有两种方法可以做到这一点。
选项 1
像这样设置MONGO_URL环境变量
export MONGO_URL=mongodb://<remote-url>:<db-port</<db-name>
例子,
export MONGO_URL=mongodb://localhost:27017/db
这样,您使用new Mongo.Collection('<collection-name>'); 创建的所有集合都将使用远程数据库。
选项 2
如果你只想使用远程数据库中的Analaytics 集合,那么
var driver = new MongoInternals.RemoteCollectionDriver("mongodb://localhost:27017");
// Or If you have oplog URL
// var driver = new MongoInternals.RemoteCollectionDriver("mongodb://localhost:27017", { oplogUrl: <oplog-url-string-here> });
Analytics = new Mongo.Collection('analytics', { _driver: driver });
【解决方案2】:
在启动 Meteor 之前,你需要设置 MONGO_URL
查看this 文章。
之后,您需要自动发布包或正确的发布/订阅。