mongo脚本的新手并且难以接受基本的东西。我正在使用mongo shell进行一些自动化,并且需要在当前用户主目录中的点文件中加载一些信息。这是在Mac OS X上。
我正在调用load函数:
load("~/.config.js")
当我这样做时,mongo会返回此错误:
file [~/.config.js] doesn't exist
如果我手动输入路径,例如:
load("/Users/foo/.config.js")
该命令有效,数据按我的预期加载。这种方法的问题是这个脚本需要在多台机器上重新运行,因此对路径进行硬编码不是一个选择。通过mongo文档,我找不到扩展路径或调用shell命令的方法,因此我可以检测当前用户名。
我想如果我必须将配置文件移动到像/etc
这样的全局目录,但这对我来说似乎非常糟糕。 mongo真的有可能扩展shell路径吗?
答案 0 :(得分:1)
load
确实接受/scripts/my_scripts.js
之类的相对路径。它没有做的是将像shell这样的shell缩写扩展到路径中。您可以放入相对于shell当前工作目录的完整路径或路径。
您可以通过以下两个链接找到更多信息:
作为你的案例的一种解决方法,你可以通过shell扩展快捷方式,在load
调用中将扩展插入一个.js文件,来扩展快捷方式,例如〜!然后在启动时让mongo执行脚本。