我对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脚本。
答案 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]