【发布时间】:2013-01-06 20:22:38
【问题描述】:
我在 32 位 Windows7 机器上使用 MongoDB 2.2.2。我在 .js 文件中有一个复杂的聚合查询。我需要在 shell 上执行这个文件并将输出定向到 CSV 文件。我确保查询返回“平面”json(没有嵌套键),因此它本质上可以转换为整洁的 csv。
我知道load() 和eval()。 eval() 要求我将整个查询粘贴到 shell 中,并且只允许在脚本中使用 printjson(),而我需要 csv。并且,第二种方式:load()..它在屏幕上打印输出,然后以 json 格式再次打印。
Mongo 有没有办法从 json 到 csv 进行这种转换? (我需要 csv 文件来准备数据图表)。我在想:
1. mongo 都有一个我现在找不到的内置命令。
2. Mongo不能帮我做;我最多可以将 json 输出发送到一个文件,然后我需要自己将其转换为 csv。
3. Mongo可以将json输出发送到一个临时集合,其中的内容可以很容易的将mongoexported转成csv格式。但我认为只有 map-reduce 查询支持输出集合。那正确吗?我需要它来进行聚合查询。
感谢您的帮助:)
【问题讨论】:
-
如果这是你经常做的事情,你可以考虑使用 .NET、python 编写一个独立的 EXE,或者你可以使用 NodeJs;每个都有一个本机驱动程序,可以轻松执行您的代码并产生所需的输出。
-
我指的是 Zachary 在stackoverflow.com/questions/4130849/… 上的回答,并且能够从 json 转换为 csv。但作为替代方案,我可以将 json 输出到集合然后执行 mongoexport 吗?
-
我建议您使用 Node 和 NodeJS 的 MongoDB 驱动程序构建一个小工具,然后您可以执行任何您想要的代码。你会很快得到你想要的结果,而不需要 shell。这将是非常可维护(和可调试)的。
标签: mongodb mongodb-.net-driver mongodb-query