如何将mongo中的特定查询导出到csv?

时间:2015-08-10 21:36:27

标签: mongodb csv robo3t

我正在搜索如何将查询结果从mongo导出到CVS或excel,或者如何在robomongo中导出结果。我找到了mongoexport,但我认为只能导出一个带有一些简单约束的集合。

这是我的疑问:

 db.getCollection('user').find({ "coins": { $elemMatch: { "id":"30","amount":0} }  })

2 个答案:

答案 0 :(得分:10)

对于MongoDB 3.0+,您可以使用 -q - type 选项将查询指定到 mongoexport

mongoexport -d test -c user -q '{ coins: { $elemMatch: { "id":"30","amount":0}}}' --type=csv --out exportdir/myRecords.json

对于早期版本,请使用--csv选项和标题字段:

mongoexport -d test -c user -q '{ coins: { $elemMatch: { "id":"30","amount":0}}}' --csv -f first_name,last_name,title --out exportdir/myRecords.json

答案 1 :(得分:7)

您可以使用forEach查看每个结果和一个函数来格式化它们。类似的东西:

db.getCollection('user').find({ "coins": { $elemMatch: { "id":"30","amount":0} }  })
.forEach(function(u){

  print('"' + u._id + '","' + u.amount + '"');

});

然后只需将输出发送到文件。