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

jho*_*pez 5 csv mongodb robo3t

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

这是我的查询:

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

小智 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
Run Code Online (Sandbox Code Playgroud)

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

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


小智 7

您可以使用forEach查看每个结果和一个函数来格式化它们.就像是:

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

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

});
Run Code Online (Sandbox Code Playgroud)

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

  • Ben,我如何“将输出发送到文件”? (2认同)