Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Meteor应用程序中连接到外部MongoDB集合_Mongodb_Meteor - Fatal编程技术网

如何在Meteor应用程序中连接到外部MongoDB集合

如何在Meteor应用程序中连接到外部MongoDB集合,mongodb,meteor,Mongodb,Meteor,默认情况下,Meteor应用程序可以访问名为Meteor的数据库中的集合,但我希望连接到其他数据库中包含的集合 环顾四周,我发现一些代码片段尝试执行以下操作: var mongoUrl = 'mongodb://127.0.0.1:27018/meteor'; var oplogUrl = 'mongodb://127.0.0.1:27018/local'; var remoteDriver = new MongoInternals.RemoteCollectionDriver(mongoUr

默认情况下,Meteor应用程序可以访问名为Meteor的数据库中的集合,但我希望连接到其他数据库中包含的集合

环顾四周,我发现一些代码片段尝试执行以下操作:

var mongoUrl = 'mongodb://127.0.0.1:27018/meteor';
var oplogUrl = 'mongodb://127.0.0.1:27018/local';

var remoteDriver = new MongoInternals.RemoteCollectionDriver(mongoUrl, {
    oplogUrl: oplogUrl,
});

var remoteCollection = new Mongo.Collection('extract', {
    _driver: remoteDriver,
});
但这样做会导致我的应用程序崩溃,并出现以下错误:

> Exited with code: 8
? (STDERR)
? (STDERR) /Users/test/.meteor/packages/meteor-tool/.1.3.3.ems6rm++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280
? (STDERR)                          throw(ex);
? (STDERR)                                ^
? (STDERR) Error: $MONGO_OPLOG_URL must be set to the 'local' database of a Mongo replica set
? (STDERR)     at Error (<anonymous>)
? (STDERR)     at OplogHandle._startTailing (packages/mongo/oplog_tailing.js:216:13)
? (STDERR)     at new OplogHandle (packages/mongo/oplog_tailing.js:76:8)
? (STDERR)     at new MongoConnection (packages/mongo/mongo_driver.js:216:25)
? (STDERR)     at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:4:16)
? (STDERR)     at meteorInstall.collections.job_extract.js (collections/job_extract.js:10:20)
? (STDERR)     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:153:1)
? (STDERR)     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:82:1)
? (STDERR)     at /Users/test/app_meteor/.meteor/local/build/programs/server/app/app.js:1453:1
? (STDERR)     at /Users/test/app_meteor/.meteor/local/build/programs/server/boot.js:291:10
? (STDERR)     at Array.forEach (native)
? (STDERR)     at Function._.each._.forEach (/Users/arj/.meteor/packages/meteor-tool/.1.3.3.ems6rm++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
? (STDERR)     at /Users/test/app_meteor/.meteor/local/build/programs/server/boot.js:133:5
>已退出,代码为:8
? (标准)
? (STDERR)/Users/test/.meteor/packages/meteor tool/.1.3.ems6rm++os.osx.x86_64+web.browser+web.cordova/mt os.osx.x86_64/dev_bundle/server lib/node_modules/fibers/future.js:280
? (标准)投掷(ex);
? (标准)^
? (STDERR)错误:$MONGO_OPLOG_URL必须设置为MONGO副本集的“本地”数据库
? (STDERR)出现错误()
? (STDERR)在OplogHandle._startTailing(packages/mongo/oplog_tailing.js:216:13)
? (STDERR)在新的OplogHandle(packages/mongo/oplog_tailing.js:76:8)
? (STDERR)在新的MongoConnection上(packages/mongo/mongo_driver.js:216:25)
? (STDERR)位于新的MongoInternals.RemoteCollectionDriver(packages/mongo/remote_collection_driver.js:4:16)
? (STDERR)位于meteoinstall.collections.job_extract.js(collections/job_extract.js:10:20)
? (STDERR)在fileEvaluate(packages/modules runtime/.npm/package/node_modules/install/install.js:153:1)
? (STDERR)在需要时(packages/modules runtime/.npm/package/node_modules/install/install.js:82:1)
? (STDERR)at/Users/test/app_meteor/.meteor/local/build/programs/server/app/app.js:1453:1
? (STDERR)at/Users/test/app_meteor/.meteor/local/build/programs/server/boot.js:291:10
? (STDERR)位于Array.forEach(本机)
? (STDERR)at Function.each.forEach(/Users/arj/.meteor/packages/meteor tool/.1.3.ems6rm++os.osx.x86_64+web.browser+web.cordova/mt os.osx.x86_64/dev_bundle/server lib/node_modules/下划线/下划线.js:79:11)
? (STDERR)at/Users/test/app_meteor/.meteor/local/build/programs/server/boot.js:133:5

您可以通过在meteor应用程序中运行命令来实现 导出MONGO_URL=URL。
然后,您的应用程序将连接到URL数据库。

您可以通过在meteor应用程序中运行命令来完成此操作 导出MONGO_URL=URL。
然后你的应用程序将连接到URL数据库。

这意味着你的
oplogUrl
没有指向有效的MongoDB oplog源。你设置了吗?什么是MongoDB oplog?我必须自己设置吗?由于27018上已经有一台MongoDB服务器在运行,它不应该已经有一个oplog在运行吗?您不必使用oplog(MongoDB用于表示操作并在副本集中使用的格式),但是替代它的方法是使用poll-and-diff。您可以阅读更多关于它的信息。您可以将数据库作为单节点副本集运行,但配置它取决于您的MongoDB版本。这意味着您的
oplogUrl
没有指向有效的MongoDB oplog源。你设置了吗?什么是MongoDB oplog?我必须自己设置吗?由于27018上已经有一台MongoDB服务器在运行,它不应该已经有一个oplog在运行吗?您不必使用oplog(MongoDB用于表示操作并在副本集中使用的格式),但是替代它的方法是使用poll-and-diff。您可以阅读更多关于它的信息。您可以将数据库作为单节点副本集运行,但配置它取决于您的MongoDB版本。我不想将整个数据库更改为远程数据库,我希望我的meteor应用程序在其正确的数据库上运行,此外,我希望从远程数据库访问一个集合。我不希望将整个数据库更改为远程数据库,我希望我的meteor应用程序在其正确的数据库上运行,此外,我希望从远程数据库访问一个集合。