【问题标题】:How to change mongoshell prompt?如何更改 mongoshell 提示符?
【发布时间】:2017-10-24 14:44:27
【问题描述】:

我最近重新安装了 Mongodb,从 enterprise 切换到 community 版本。不过,当我启动mongo 时,我得到的提示格式是:

MongoDB Enterprise > 

如何将其更改为标准提示版本? (即>,如果我没记错的话)

【问题讨论】:

    标签: mongodb mongo-shell


    【解决方案1】:

    您可以通过设置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

    【讨论】:

    • 太棒了!有用。有趣的是,.mongorc.js 在我编辑之前是空的。您是否知道默认值的存储位置(在我的情况下为 MongoDB Enterprise >)?
    • @floatingpurr 我已经用一些建议更新了答案,以解决您的最后评论。
    • 谢谢。但是,我没有mongorc.js 的全球版本。不知道默认提示格式来自哪里。
    • 呃...如果您根本没有提示并且设置prompt 变量没有明显效果怎么办?还没试过弄乱mongrc。只是看起来很奇怪,它是空白的。 Shell 仍然可以工作,但根本没有提示。
    • 刚刚确认更改 mongorc 也无济于事。
    【解决方案2】:

    当您在互联网上搜索此主题时,通常会找到以下功能。如果您想包含现有提示,请使用函数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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2022-01-25
      相关资源
      最近更新 更多