0

我正在使用 deploy ,它使用 mongoDB 作为 Ubuntu OS 上的数据库。

mongoDB 的所有数据库都可以从 mongodb shell 中访问,但我的问题是,当我创建一个已部署的新项目时,我可以存储/读取/修改记录,但是无法从 mongodb shell 访问这个新数据库,我该怎么做?

这个新项目的数据库文件存储在应用程序目录中,而不是 mongoDB 默认数据目录中。

此外,mongoDB 作为应用程序中的数据库和 MongoDB 作为所有应用程序的全局数据库有什么区别。

目前所有集合都可以使用dpd对象访问

dpd.albums.get(inputParams, function(resultSet, err){ //handle result});

虽然我想使用类似的东西访问这些集合

db.albums.find(); //within mongod shell
4

1 回答 1

3

这里似乎对使用“deployd”进行部署存在一些误解。

首先,“deployd”依赖于其已部署主机上的现有 mongoDB 安装,或者被配置为使用另一台服务器上的主机。因此,保存“数据文件”的位置通常是一个配置点。“deployd”试图做的就是启动“mongod”实例,因为如果配置是本地的,它自己的实例就会启动。

无论您做什么,所有选项都可以在配置中使用。这里的文档中有一个很好的示例:

var server = deployd({
  port: process.env.PORT || 5000,
  env: 'staging',
  db: {
    host: 'my.production.mongo.host',
    port: 27105,
    name: 'my-db',
    credentials: {
      username: 'username',
      password: 'password'
    }
  }
});

如您所见,主机和端口设置是在应用程序本身的配置中指定的,因此如果您不使用默认的“mongoDB”主机和端口,则将它们添加到命令行选项中,如下所示:

mongo --host my.production.mongo.host --port 27105

因此,即使在同一个本地主机上,请注意该实例不使用默认27017端口,而是使用您在连接时需要指定的不同端口。

另请参阅mongo shell命令文档以及已部署的文档。

于 2014-05-20T07:32:41.593 回答