2017-03-23 100 views
0

我在我的集​​合A,B,C中有3个字段我正在使用以下命令以csv格式导出它。Mongoexport具有额外的硬编码列

mongoexport --host %s -u%s -p%s --authenticationDatabase %s --db %s --collection %s --query \'%s' --type=csv --out %s --fields A,B,C 

但业务需求是这样的,我需要我的CSV文件包含4列有一个硬编码列d(在我的控制管道的一部分不完全),其中包含字符串“成功”写的。

我的CSV需要看起来像:

A, B, C, D 
x, y, z, "success" 

目前运行导出后,我使用AWK在CSV第四列追加,但我想知道,如果这能直接与工作mongoexport。我正在考虑的另一个选项是编写一个自定义脚本,将3 + 1列写入csv,基本上编写了我自己的导出实用程序帮助程序。

+0

awk -F,-v OFS =,'NR == 1 {$ 0 = $ 0 FS“D”} NR!= 1 {$ 4不知道'mongoexport' = “\” Sucess \ “”} 1'' –

回答

0

SED版本(在这种情况下我的偏好):

Mongo ... | sed '1 s/$/, D/;1! s/$/, "Success"/' 

awk的版本:

Mongo ... | awk '{$0 = $0 ", " (NR > 1 ? "Success" : "D")} 7' 

不知道MongoDB的功能,但最好是直接查询包括这个固定的值作为请求的额外字段