我一直在研究一些简单的脚本,可以从bash命令行在mongo上运行。最初,我按如下方式运行它们:
$ mongo dbname script.js
但是我最近遇到了mikemaccana的回答https://stackoverflow.com/a/23909051/2846766,表示使用mongo作为解释器,所以我可以从命令执行script.js(或我选择的任何名称,有或没有.js)线。
$ script.js
我认为它很棒且干净,但现在我想将数据库名称作为命令行参数传递。
$ script.js dbname
在这里,我使用bash风格的“$ 1”来演示我在script.js中所做的事情。
#!/usr/bin/env mongo
var db = new Mongo().getDB($1);
// Do other things with db, once I resolve the name from the command line.
这导致“ReferenceError:$ 1未定义...”,这并不奇怪。但是我如何引用命令行参数?这会是一个mongo会议吗?一个javascript约定?可能吗?这将使我对mongo的命令行体验更美观。
答案 0 :(得分:1)
目前使用mongo shell无法做到这一点...
https://groups.google.com/forum/#!topic/mongodb-user/-pO7Cec6Sjc
...如果您想获得类似的命令行体验,请尝试使用bash脚本(或其他您熟悉的脚本语言)。
答案 1 :(得分:1)
How to pass argument to Mongo Script的重复 简而言之,这是不可能的,但答案中给出了几种解决方法(此处不再重复)。