我有几个GB从RDBMS导出为JSON。所有日期都采用严格的JSON格式,即{$date:1354810746067}
。
Mongoimport似乎没有将其转换为所需的ISODate。它仅在格式为Date(1354810746067)
时才有效。
是否可以选择调整mongoimport以接受{$ date:..}作为ISODate?
或者我应该通过一些sed
脚本传递我的导入,也许?
示例输入就像
{cleared:true,category:"general auditing",transactionId:null,details:{new_terminal_mode:"test value-24",company_old_id:2534,new_terminal_state:"test value-28",reduction_type:"test value-3",transition_times:[{$date:1355408317000},{$date:1355407983000},{$date:1355413490000},{$date:1355411339000},{$date:1355414485000},{$date:1355414378000},{$date:1355408061000},{$date:1355408064000}]},_id:"69",dateTime:{$date:1354813457327},severity:20,eventType:"log_event_count_threshold_reached",systemId:693972591865925,carParkId:0}
我试过
cat file | sed -e s/{$date:\([0-9]*\)}/Date\(\1\)/g | mongoimport -c test
但我的正则表达技巧在那里失败了: - (。
答案 0 :(得分:1)
我现在没有mongoimport所以我在这里无法帮助你。
但对于sed,请尝试使用sed中的一些引号:
sed -e 's/{$date:\([0-9]*\)}/Date\(\1\)/g' file
PS:你的正则表达式很好。
答案 1 :(得分:0)
尝试使用引号,另一个不是有效的JSON:{“$ date”:1354810746067}