7

我正在编写这个脚本,它接受 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

4

3 回答 3

2

有点hack,但是在修复该错误之前,您可以tail +2先通过管道传输,这将排除您不想要的输出,例如:

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

这在快速测试中对我有用,以省略 9999 行。

于 2012-08-17T15:28:00.743 回答
1

以防万一有人偶然发现这个问题。我遇到了同样的问题并得到了答案,无需使用 shell 魔法即可解决问题:

在 shell 脚本中使用 mongodb 的结果

于 2014-02-05T05:49:53.717 回答
-1

我意识到已经有一段时间了。发布解决方案,希望它可以帮助遇到此问题的人。

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

例如,尝试:

$ mongo <server>/db script.js --eval 'void (yyyymm="2011-11")'

(注意:括号很重要)

于 2018-03-30T20:22:40.963 回答