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

时间:2015-08-31 13:04:23

标签: javascript mongodb homebrew

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

我想避免弄乱/ data中的符号链接或实际数据文件,但更重要的是要学习热点,让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函数吗?

1 个答案:

答案 0 :(得分:2)

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/'