将辅助方法添加到Mongo Shell

时间:2016-02-09 22:24:59

标签: bash mongodb shell

有没有办法添加"帮助"每次使用它时加载mongo shell的方法?

基本上,只要您想通过_id进行查询,就必须执行以下操作。

db.collectionName.findOne({_id: ObjectId('THIS-IS-AN-OBJECTID')})

每当我要做很多命令行命令时,我都会对ObjectId函数进行别名,以便更容易输入。

var ob = ObjectId;
db.collectionName.findOne({_id: ob('AN-OBJECTID')})
db.collectionName.findOne({_id: ob('ANOTHER-ONE')})
db.collectionName.findOne({_id: ob('ANOTHER')})

如果有一种方法可以运行指定的JS /添加一段代码,每次从shell中提取mongo,那将会非常寒意。我检查了MongoDB的CLI文档,但没有看到类似的东西,所以我想我会在这里问。

我知道有可能使用这种方式,所以这可能是默认情况下mongo shell可能不支持的情况。这可能是我们可以创建某种类型的帮助程序bash脚本来启动shell,然后注入键盘输入以创建帮助程序ob的情况?不确定如何在个人方面解决这个问题,但是如果能够做到这样的事情,无论是本地还是通过某种帮助脚本,都会深入了解。

1 个答案:

答案 0 :(得分:1)

如果您希望每次启动shell时都执行代码,那么.mongorc.js中的任何内容都将在启动时运行:

  

.mongorc.js文件

     

启动时,mongo会在用户的HOME目录中检查名为.mongorc.js的JavaScript文件。如果找到,mongo会在首次显示提示之前解释.mongorc.js的内容。如果使用shell来评估JavaScript文件或表达式,可以通过在命令行上使用--eval选项或将.js文件指定为mongo,mongo将在JavaScript完成处理后读取.mongorc.js文件。您可以使用--norc选项阻止加载.mongorc.js。

所以只需在那里定义你的变量关联。

您还可以提供您选择的文件以及--shell选项,让命令知道您希望在完成包含的任何说明后打开shell:

mongo --shell file_with_javascript.js

但如上所述,除非还指定了--norc选项,否则仍将调用.mongorc.js文件(如果存在)。

相关问题