mongo命令行vs shell:结果不同

时间:2015-10-15 14:36:08

标签: mongodb shell

我对Mongo Shell遇到的问题感到困惑,产生了不同的输出变化。

当我登录mongo shell并运行最简单的查询时,例如:

db.database.findOne();

我收到了一份文件。

当我通过命令行上的--eval选项调用相同的命令时,我得到了不同的结果:(xx的编辑敏感信息)

mongo -u xxx -p xxx xxxx --eval 'db.database.findOne();'
MongoDB shell version: 3.0.6
connecting to: xxxx
[object Object]

当我将此命令放入文件并尝试时,我根本没有输出。

mongo -u xxx-p xxx xxxx example.js
MongoDB shell version: 3.0.6
connecting to: xxxx

(我刚刚回到命令行)

Example.js包含:

db.database.findOne();

我想念的Mongo shell手册的哪一部分解释了这种行为?

我的目标是能够将我的mongo查询的输出提供给shell脚本。

1 个答案:

答案 0 :(得分:0)

当在shell中运行findOne时,它将以JSON方式打印结果。要通过shell脚本或eval打印,您需要通过printjson()调用打印return参数:

mongo -u xxx -p xxx xxxx --eval 'printjson(db.database.findOne());'

有关使用mongo shell编写脚本的更多信息,请参阅: http://docs.mongodb.org/master/tutorial/write-scripts-for-the-mongo-shell

[我更正了#34; printson" to" printjson"。再次感谢您的帮助。 -Shabbir]

相关问题