如何使用MongoDB在csv中将分隔符从逗号更改为#

时间:2014-10-28 09:56:23

标签: mongodb

将记录导出到csv文件时,是否可以将分隔符从逗号更改为#。

在下面的例子中

mongoexport -d mydb -c coll --csv --fields "ProductId,ModerationStatus,Rating,TotalCommentCount" --out results.csv

2 个答案:

答案 0 :(得分:4)

目前,mongoexport没有此功能。

但是,您可以开发一个简单的JavaScript来执行此操作。因此,您可以控制csv和字段数据类型的格式。

<强> export.js

conn = new Mongo();
db = conn.getDB("myDB");
var cur = db.myCollection.find();

var obj;
while(cur.hasNext()){
    obj = cur.next();
    print("\""+obj._id+"\";\""+obj.field_1+"\";\""+obj.field_2+"\"");
}

从您的操作系统shell调用此脚本:

mongo export.js&gt; file_name.csv

答案 1 :(得分:0)

不是一个非常干净的解决方案,但您可以构建自己的 mongoexport 版本,并在代码“逗号”语句中添加

https://github.com/mongodb/mongo-tools/blob/master/mongoexport/csv.go

https://golang.org/pkg/encoding/csv/#Writer

// WriteHeader writes a comma-delimited list of fields as the output header row.
func (csvExporter *CSVExportOutput) WriteHeader() error {
    if !csvExporter.NoHeaderLine {

        //here the trick
        csvExporter.csvWriter.Comma = '|'
        //

        csvExporter.csvWriter.Write(csvExporter.Fields)
        return csvExporter.csvWriter.Error()
    }
    return nil
}