【发布时间】:2017-10-24 14:44:27
【问题描述】:
我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。不过,当我启动mongo 时,我得到的提示格式是:
MongoDB Enterprise >
如何将其更改为标准提示版本? (即>,如果我没记错的话)
【问题讨论】:
标签: mongodb mongo-shell
我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。不过,当我启动mongo 时,我得到的提示格式是:
MongoDB Enterprise >
如何将其更改为标准提示版本? (即>,如果我没记错的话)
【问题讨论】:
标签: mongodb mongo-shell
您可以通过设置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
【讨论】:
.mongorc.js 在我编辑之前是空的。您是否知道默认值的存储位置(在我的情况下为 MongoDB Enterprise >)?
mongorc.js 的全球版本。不知道默认提示格式来自哪里。
prompt 变量没有明显效果怎么办?还没试过弄乱mongrc。只是看起来很奇怪,它是空白的。 Shell 仍然可以工作,但根本没有提示。
当您在互联网上搜索此主题时,通常会找到以下功能。如果您想包含现有提示,请使用函数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>
【讨论】: