如何更改mongoshell提示?
How to change mongoshell prompt?
我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。然而,当我开始 mongo
时,这是我得到的提示格式:
MongoDB Enterprise >
如何改成标准提示版? (即 >
如果我没记错的话)
您可以通过设置 prompt
变量从 在 一个 shell 会话中更改提示。例如,在 Mongo shell ...
中发出以下命令
var prompt="this_prompt >"
... 将导致 shell 的提示更改为:
this_prompt >
您可以通过更新 .mongorc.js
来更改所有未来会话的默认提示(您会在 $HOME 目录中找到它,如果它不存在则创建它)。以下添加到您的 .mongorc.js
...
var prompt=function() {
return ISODate().toLocaleTimeString() + " > ";
}
... 将导致此提示:
:~/dev/tools/mongodb/mongodb-osx-x86_64-3.4.7/bin$ ./mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
16:09:43 >
16:09:57 >
或者,要获得此提示:>
只需将以下内容添加到您的 .mongorc.js
:
var prompt=">"
你的问题还有子文本,即; 现有的 MongoDB Enterprise >
提示来自哪里?。很难说...
- 也许你有一个全球
mongorc.js
;如果您使用的是 *nix 系统,请查看 /etc/mongorc.js
,如果您使用的是 Windows ,请查看 %ProgramData%\MongoDB
- Mongo 查找 rc 文件时的行为也受环境变量的影响,更多细节 in the docs。
当您在互联网上搜索此主题时,通常会找到以下功能。如果您想包含现有提示,请使用函数 defaultPrompt()
,例如
prompt = function() {
if (typeof db == 'undefined')
return '(nodb)> ';
// Check the last db operation
try {
db.runCommand( {getLastError:1} );
} catch (e) {
print(e);
}
var user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0]
if (user) {
return user.user + "@" + db + " " + defaultPrompt();
} else {
return "(anonymous)@" + db + " " + defaultPrompt();
//return db + " " + defaultPrompt(); // if you prefer
}
}
提示将是这样的:
admin@mip mongos>
mip shard001:ARBITER>
admin@mip configRepSet:PRIMARY>
我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。然而,当我开始 mongo
时,这是我得到的提示格式:
MongoDB Enterprise >
如何改成标准提示版? (即 >
如果我没记错的话)
您可以通过设置 prompt
变量从 在 一个 shell 会话中更改提示。例如,在 Mongo shell ...
var prompt="this_prompt >"
... 将导致 shell 的提示更改为:
this_prompt >
您可以通过更新 .mongorc.js
来更改所有未来会话的默认提示(您会在 $HOME 目录中找到它,如果它不存在则创建它)。以下添加到您的 .mongorc.js
...
var prompt=function() {
return ISODate().toLocaleTimeString() + " > ";
}
... 将导致此提示:
:~/dev/tools/mongodb/mongodb-osx-x86_64-3.4.7/bin$ ./mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
16:09:43 >
16:09:57 >
或者,要获得此提示:>
只需将以下内容添加到您的 .mongorc.js
:
var prompt=">"
你的问题还有子文本,即; 现有的 MongoDB Enterprise >
提示来自哪里?。很难说...
- 也许你有一个全球
mongorc.js
;如果您使用的是 *nix 系统,请查看/etc/mongorc.js
,如果您使用的是 Windows ,请查看 - Mongo 查找 rc 文件时的行为也受环境变量的影响,更多细节 in the docs。
%ProgramData%\MongoDB
当您在互联网上搜索此主题时,通常会找到以下功能。如果您想包含现有提示,请使用函数 defaultPrompt()
,例如
prompt = function() {
if (typeof db == 'undefined')
return '(nodb)> ';
// Check the last db operation
try {
db.runCommand( {getLastError:1} );
} catch (e) {
print(e);
}
var user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0]
if (user) {
return user.user + "@" + db + " " + defaultPrompt();
} else {
return "(anonymous)@" + db + " " + defaultPrompt();
//return db + " " + defaultPrompt(); // if you prefer
}
}
提示将是这样的:
admin@mip mongos>
mip shard001:ARBITER>
admin@mip configRepSet:PRIMARY>