如何在MongoDBShell中定义别名?
How to define aliases in the MongoDB Shell?
我正在使用 MongoDB shell 并且想定义一些快捷方式。例如,将 show databases
缩写为 sd
.
会很好
我已经设法将函数 hw()
添加到 MongoDB shell,方法是将它的定义添加到 ~/.mongorc.js
:
function hw() {
print("Hello World.");
}
当我在 mongo-shell 中输入 hw()
时,它会打印出 Hello World.
问题 1: 是否也可以在不输入括号的情况下执行函数(即 hw
而不是 hw()
)?
我尝试使用匿名函数将函数绑定到变量,但我仍然必须输入括号,否则会打印出函数的定义
hw=function(){ print("Hello World (anonymous)."); };
问题 2: 如何从我的函数中执行 MongoDB 命令?我试过了:
function sd() {
show databases;
}
但这会在 MongoDB shell:
启动时出错
SyntaxError: Unexpected identifier at /home/edward/.mongorc.js:2
要列出数据库,请尝试:
function sd(){
return db._adminCommand( { listDatabases: 1 } )
}
基本上你必须运行在这里有效javascript。请记住,您必须在管理数据库的上下文中 运行 这些 - 运行 命令是不够的 - 您必须在此处使用 _adminCommand。
其他命令见http://docs.mongodb.org/manual/reference/command/
如果您想去掉括号,还有一种方法(您必须将 属性 放在 'this' 上)
Object.defineProperty(this, 'sd', {
get: function() {
return db._adminCommand( {listDatabases: 1} )
},
enumerable: true,
configurable: true
});
另一种在 mongo shell 中为数据库添加别名的方法是使用 db.getSiblingDB() 命令。在下文中,假设您有两个 MongoDB 数据库 - AmazonSales 和 EbaySales。这两个数据库都有一个用户集合。您现在可以使用 Mongo shell 中描述的别名,而不是总是需要 'use ' 命令来切换上下文
var cs = db.getSiblingDB('AmazonSales')
cs.users.count()
cs.users.find({name:'John'})
var r = db.getSiblingDB('EbaySales')
r.users.count()
我正在使用 MongoDB shell 并且想定义一些快捷方式。例如,将 show databases
缩写为 sd
.
我已经设法将函数 hw()
添加到 MongoDB shell,方法是将它的定义添加到 ~/.mongorc.js
:
function hw() {
print("Hello World.");
}
当我在 mongo-shell 中输入 hw()
时,它会打印出 Hello World.
问题 1: 是否也可以在不输入括号的情况下执行函数(即 hw
而不是 hw()
)?
我尝试使用匿名函数将函数绑定到变量,但我仍然必须输入括号,否则会打印出函数的定义
hw=function(){ print("Hello World (anonymous)."); };
问题 2: 如何从我的函数中执行 MongoDB 命令?我试过了:
function sd() {
show databases;
}
但这会在 MongoDB shell:
启动时出错SyntaxError: Unexpected identifier at /home/edward/.mongorc.js:2
要列出数据库,请尝试:
function sd(){
return db._adminCommand( { listDatabases: 1 } )
}
基本上你必须运行在这里有效javascript。请记住,您必须在管理数据库的上下文中 运行 这些 - 运行 命令是不够的 - 您必须在此处使用 _adminCommand。
其他命令见http://docs.mongodb.org/manual/reference/command/
如果您想去掉括号,还有一种方法(您必须将 属性 放在 'this' 上)
Object.defineProperty(this, 'sd', {
get: function() {
return db._adminCommand( {listDatabases: 1} )
},
enumerable: true,
configurable: true
});
另一种在 mongo shell 中为数据库添加别名的方法是使用 db.getSiblingDB() 命令。在下文中,假设您有两个 MongoDB 数据库 - AmazonSales 和 EbaySales。这两个数据库都有一个用户集合。您现在可以使用 Mongo shell 中描述的别名,而不是总是需要 'use ' 命令来切换上下文
var cs = db.getSiblingDB('AmazonSales')
cs.users.count()
cs.users.find({name:'John'})
var r = db.getSiblingDB('EbaySales')
r.users.count()