如何在mongo脚本中处理命令行参数?

时间:2014-06-22 14:30:44

标签: javascript bash mongodb

我一直在研究一些简单的脚本,可以从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的命令行体验更美观。

2 个答案:

答案 0 :(得分:1)

目前使用mongo shell无法做到这一点...

https://groups.google.com/forum/#!topic/mongodb-user/-pO7Cec6Sjc

...如果您想获得类似的命令行体验,请尝试使用bash脚本(或其他您熟悉的脚本语言)。

答案 1 :(得分:1)

How to pass argument to Mongo Script的重复 简而言之,这是不可能的,但答案中给出了几种解决方法(此处不再重复)。