如何更改mongoshell提示符?

问题描述 投票:0回答:3

我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。然而,当我开始

mongo
时,这是我得到的提示格式:

MongoDB Enterprise > 

如何更改为标准提示版本? (即,

>
,如果我没记错的话)

mongodb mongo-shell
3个回答
4
投票

您可以通过设置 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 文件时的行为也受环境变量的影响,更多详细信息
  • 在文档中

0
投票
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>



0
投票

return "[" + username + "@" + database + ":" + privs + defaultPrompt() + "] >";

输出是默认提示符,没有任何其他内容。我想添加是否连接到 mongos、主实例或辅助实例。

© www.soinside.com 2019 - 2024. All rights reserved.