Mongo --quiet Not Suppressing --eval output

时间:2012-08-17 14:49:07

标签: javascript mongodb

我正在编写这个脚本,它接受t并在test.js中使用它。我将把输出通过电子邮件发送给我和我的同事。

% mongo my_db --eval 't=9999;' --quiet test.js
9999
------------------------------------------------
Info about stuff going back 9999 days to 2012-08-17.
------------------------------------------------
Stuff x: 433321 (12.43%)
Stuff y: 2723426 (81.57%)
Total: 4524524524

有没有办法没有把我传入的内容--eval输出到控制台,所以我没有在我的结果顶部悬挂'9999'?

编辑:这可能是--quiet选项

的错误

请参阅: https://jira.mongodb.org/browse/SERVER-4391

3 个答案:

答案 0 :(得分:2)

有点黑客攻击,但是在修复bug之前你可以先管道tail +2,这将排除你不想要的输出,如:

% mongo my_db --eval 't=9999;' --quiet test.js | tail +2 

这对我来说很快就能省去9999系列。

答案 1 :(得分:1)

万一有人绊倒了这个问题。我遇到了同样的问题并得到了答案,解决了没有shell魔法的问题:

Use result from mongodb in shell script

答案 2 :(得分:0)

我意识到已经有一段时间了。发布一个解决方案,希望它可以帮助那些陷入困境的人。

使用void前缀命令通常会使输出静音。

例如,尝试:

var query = function(q,res) {
    var results = {};

    con.query(q, function (err, result, fields) {
        if (err) throw err;
        results = JSON.stringify(JSON.parse(JSON.stringify(result))[0].Nome);
        console.log("Risultati query: ");
        console.log(results);

        // I moved the code here
        res.json(results);
        res.end();
    });
    // Your old code
    // res.json(results);
    // res.end();
};

(注意:括号很重要)