使用逗号分隔符的记录未在mongo DB中正确导出

时间:2013-04-09 01:38:26

标签: mongodb export

我使用以下命令将联系人集合的字段f1和f2导出到contacts.csv

mongoexport --db users --collection contacts --csv  --out /opt/backups/contacts.csv --fields f1,f2

工作正常,数据导出到csv。

问题仅在于f2字段的记录导出。

f2字段存储在db中,逗号分隔值为1,samuel,it。

我认为mongo正在输入到csv,将逗号视为分隔符。

所以,1,samuel和它在csv文件中输出到3个不同的单元格,如下所示,

field1  field2
====   ====         ======     ==
1         1                 samuel    it

instead i want it as follows

field1  field2
====   ====        
1         1,samuel,it

BTW我目前正在使用mongo 1.6.5

1 个答案:

答案 0 :(得分:0)

MongoDB 1.6.5于2010年12月发布, lot 从那时起发生了变化。如果不是2.4,那么至少升级到MongoDB 2.2肯定是值得的。

如果无法完全升级MongoDB,您可以尝试从当前数据库运行MongoDB 2.4中的mongoexport。命令行工具通常应向后兼容。

看起来mongoexport CSV格式更符合MongoDB 2.0的发布和SERVER-1097的更改(“mongoimport / export应符合CSV规范”),但肯定会有后续改进或修复。

我刚尝试使用MongoDB 1.6.5进行简单测试,mongoexport --csv格式似乎没问题:

field1,field2
1,"1,samuel,it"

另一种可能性是问题在于您尝试用于导入CSV的应用程序/工具。对于“有效”CSV formatted file应该是什么样的,有几种不同的解释。每个人都同意CSV包含以逗号分隔的字段,但字段转义可能会有所不同。