javascript - ShardingTest() 可以将非默认的 dbpath 传递给 mongod 吗?

标签 javascript mongodb homebrew

我在 OS X 10.11/15A263e 上运行 mongodb 3.0.6 ( homebrew ),无法理解 ShardingTest 的 js 代码。指定非默认数据文件路径。

出于某种原因,我想避免弄乱/data 中的符号链接(symbolic link)或实际数据文件,但更重要的是,我想学习如何让 ShardingTest 类下面的代码正常工作:

manoa:dev mike$ mongo --nodb
MongoDB shell version: 3.0.6
> var options = { shardOptions : { dbpath : "/usr/local/var/mongodb" } };
> cluster = new ShardingTest( { shards : 3 }, { other : options } );
Resetting db path '/data/db/test0'
2015-08-31T07:54:03.707-0500 E QUERY    Error: boost::filesystem::create_directory: No such file or directory: "/data/db/test0"
    at Function.MongoRunner.runMongod (src/mongo/shell/servers.js:589:13)
    at new ShardingTest (src/mongo/shell/shardingtest.js:259:36)
    at (shell):1:11 at src/mongo/shell/servers.js:589

looked over this helpful post ,但是我的 JS 太弱了,无法从那里的帮助中概括出如何设置 dbpath 以及哪些参数将覆盖默认路径。

有人可以提出一种调试此脚本的方法或提供实际语法以将我首选的数据库路径提供给 ShardingTest 函数吗?

最佳答案

MongoRunner.dataPathused to construct db paths :

this.getDBPaths = function() {
    return _alldbpaths.map((path) => {
        return MongoRunner.dataPath + path;
    });
};

因此您可以将其设置为您想要的任何目录,例如:

// don't forget the trailing slash
MongoRunner.dataPath = '/home/your_user/data/db/'

关于javascript - ShardingTest() 可以将非默认的 dbpath 传递给 mongod 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32311976/

相关文章:

homebrew - 错误 : Cask 'java7' is unavailable: No Cask with this name exists

javascript - 使用 Javascript 如何从使用 PhoneGap 构建的应用程序在移动设备上解压缩文件?

javascript - 控制 Google Maps InfoWindow 的宽度

在 MacOs High Sierra 中运行的 MongoDB 写入操作非常慢

java - Mongo 连接 SSL 和 JAX-WS

ruby-on-rails - echo $PATH 不匹配 .bash_profile

ruby - 需要 C 扩展的 rbenv 和 gem

javascript - 如何计算和添加对象中键的值

javascript - 如何在Rails中将值从js传递到hidden_​​field?

Mongodb 使用排序和切片更新嵌套文档