流星连接到另一个 mongodb(不是本地的)
Posted
技术标签:
【中文标题】流星连接到另一个 mongodb(不是本地的)【英文标题】:meteor connection to an other mongodb (not the local one) 【发布时间】:2015-11-12 21:32:53 【问题描述】:我已经启动了一个 localhost:207017 mongod 3.0.5,它是一个完全独立于流星的 mongodb 我想从流星(有一个本地 mongodb)连接到它。 我在How do I use an existing MongoDB in a Meteor project? 中看到我们可以使用:export MONGO_URL=mongodb://localhost:27017/your_db 将“某物”链接到我的 mongo 服务器。
问题:
-
这个 mongo_url 环境变量存储在哪里,即本地存储在我的流星应用程序中?它是专门针对我正在处理的流星应用还是针对所有流星的。
如何回到我的应用程序的本地 mongodb
使用以下代码,不会在 your_db 中创建任何集合,但我有一个名为 meteor_accounts_loginServiceConfiguration 的新集合(空)。
在meteor中,我使用的是meteor doc site中的todo示例
.js 文件
Tasks = new Mongo.Collection("tasks");
if (Meteor.isClient)
// This code only runs on the client
Template.body.helpers(
tasks: function ()
return Tasks.find();
);
.html 文件
<body>
<div class="container">
<header>
<h1>Todo List</h1>
</header>
<ul>
#each tasks
> task
/each
</ul>
</div>
</body>
<template name="task">
<li>text</li>
</template>
任何人都知道这一切是如何设置和工作的,以及如何解决它?
最好的,
G
【问题讨论】:
【参考方案1】:环境变量可以在您启动应用程序时在命令行上设置,因此您无需在整个 shell 环境中进行设置。这样做意味着它对于该 shell 是全局的,或者对于所有 shell 会话都是全局的,具体取决于您是否永久设置。
但对我来说,简单的迁移只需几个步骤:
在一个窗口中启动流星应用程序
在另一个窗口中,通过正在运行的端口连接到它的本地 MongoDB。 (在本例中为 3001 ),只是为了检查:
mongo --port 3001
在报告连接并退出 shell 后,我运行 mongoexport
和 mongoimport
来复制所需的集合:
mongoexport --port 3001 -d meteor -c cards | mongoimport -d meteor -c cards
我只是将输出从出口输送到进口,这很简单。此外,我选择保留相同的数据库名称,但您可以根据需要进行更改。为您想要的每个集合重复导出。
停止停止本地服务器的流星应用程序,然后使用meteor
命令之前发出的环境设置重新启动。同样,我将所有内容都放在“流星”数据库中,这就是我要连接的内容:
MONGO_URL="mongodb://localhost:27017/meteor" meteor
应用启动时,会从迁移的集合中读取数据并完美显示。
对于偏执狂,如果您没有注意到流星启动中的输出没有报告本地 MongoDB 启动,那么您可以检查正在运行的进程并看到只有您的“全局”MongoDB 是唯一运行的实例。
当然,如果你指向另一台机器,那么应用服务器上没有运行 MongoDB。
【讨论】:
以上是关于流星连接到另一个 mongodb(不是本地的)的主要内容,如果未能解决你的问题,请参考以下文章