javascript - 有没有办法将 'pretty' 打印 MongoDB shell 输出到文

具体来说,我想将 mongodb find() 的结果打印到文件中。 JSON 对象太大,所以我无法以 shell 窗口大小查看整个对象。

最佳答案

shell 提供了一些不错但隐藏的功能,因为它是一个交互式环境。

当您通过 mongo commands.js 从 javascript 文件运行命令时,您不会得到完全相同的行为。

有两种解决方法。

(1) 伪造 shell ,让它认为你处于交互模式

$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF


(2) 使用 Javascript 将 find() 的结果翻译成可打印的 JSON

mongo dbname command.js > output.json

command.js 包含这个(或其等价物):

printjson( db.collection.find().toArray() )

这将漂亮地打印结果数组,包括 [ ] - 如果您不希望这样,您可以遍历数组和 printjson() 每个元素。

顺便说一句,如果您只运行一个 Javascript 语句,则不必将其放入文件中,而是可以使用:

$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json

关于javascript - 有没有办法将 'pretty' 打印 MongoDB shell 输出到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104800/

相关文章:

node.js - 在 Mongoose 中填充嵌套数组

mongodb - 与关系数据库相比,使用像 MongoDB 这样的无模式数据库有什么优势?

mongodb - 什么是 Mongoose 错误 Cast to ObjectId failed

ruby-on-rails - 如何实现has_many :through relationship

linux - 如何避免来自 mongodb 的 transparent_hugepage/defr

node.js - 如何使用 Mongoose 删除数据库?

javascript - 如何跨 NodeJs 应用程序和模块正确重用与 Mongodb 的连接

mongodb - 基于文档和基于键/值的数据库之间的区别?

python - 在 PyMongo 中使用 .sort

javascript - 在 Mongoose 中引用另一个模式