将Mongodb查询结果导出到文件

时间:2019-01-29 21:23:19

标签: json mongodb export

我需要将mongodb聚合查询结果导出到文件。我已连接到远程服务器,所以我需要类似db.myCollection.aggregate([...]).printToFile('C:\Downloads\resultFile.txt')的东西吗?

2 个答案:

答案 0 :(得分:2)

在连接字符串中添加引号,并使用printjson()打印JSON对象。请注意,aggregate()返回一个游标,因此您必须遍历它们。如果您不使用forEach,则只会返回前20位。

这是一个单行命令。

mongo --quiet "mongodb://junior:SECRETPASSWORD@mongo4:9000,mongo5:9000/WebApp?authSource=admin&replicaSet=rs0&readPreference=secondaryPreferred" --eval 'db.cars.aggregate([...]).forEach(function(doc) { printjson(doc);})' > output.txt

更具可读性的多行格式

mongo --quiet \
    "mongodb://junior:SECRETPASSWORD@mongo4:9000,mongo5:9000/WebApp?authSource=admin&replicaSet=rs0&readPreference=secondaryPreferred" \
    --eval 'db.cars.aggregate([...]).forEach(function(doc) \
        { printjson(doc);})' > output.txt

答案 1 :(得分:1)

我假设基于您的示例路径,Windows是您的操作系统。在这种情况下,您可以使用>将控制台命令输出重定向到文件。要直接从cmd运行aggregate,您可以将mongo用作带有--eval参数的客户端,该参数允许您运行JavaScript代码,请尝试如下操作:

C:\Program Files\MongoDB\Server\4.0\bin>mongo --host <yourhost> --port <yourport> --eval "db.myCollection.aggregate([...])" > C:\Downloads\resultFile.txt