Edw*_*ard 5 alias mongodb mongo-shell
我正在使用 MongoDB shell 并且喜欢定义一些快捷方式。例如,缩写show databases为sd.
我已经设法hw()通过将它的定义添加到 MongoDB shell 中添加了一个函数~/.mongorc.js:
function hw() {
print("Hello World.");
}
Run Code Online (Sandbox Code Playgroud)
当我输入hw()mongo-shell 时,它会打印出来Hello World.
问题 1:是否也可以执行函数而不必键入括号(即hw代替hw())?
我尝试使用匿名函数将函数绑定到变量,但我仍然必须输入括号,否则会打印出函数的定义
hw=function(){ print("Hello World (anonymous)."); };
Run Code Online (Sandbox Code Playgroud)
问题 2:如何从我的函数中执行 MongoDB 命令?我试过:
function sd() {
show databases;
}
Run Code Online (Sandbox Code Playgroud)
但这会在 MongoDB shell 启动期间出现错误:
语法错误:/home/edward/.mongorc.js:2 处的意外标识符
要列出数据库,请尝试:
function sd(){
return db._adminCommand( { listDatabases: 1 } )
}
Run Code Online (Sandbox Code Playgroud)
基本上你必须在这里运行有效的javascript。请记住,您必须在管理数据库的上下文中运行这些 - runCommand 是不够的 - 您必须在此处使用 _adminCommand。
对于其他命令,请参阅http://docs.mongodb.org/manual/reference/command/
如果您想去掉括号,还有一种方法(您必须将属性放在“this”上)
Object.defineProperty(this, 'sd', {
get: function() {
return db._adminCommand( {listDatabases: 1} )
},
enumerable: true,
configurable: true
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |