我有幾個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
但我的正則表達式的技能在那裏失敗了:-(。
以哪種方式,你在你以前的RDBMS日期。是Unix時間,但不是UNIX時間大約10個字符。 –
這是從時代開始的毫秒,它符合MongoDB日期的要求http://www.mongodb.org/display/DOCS/Mongo+Extended+JSON。 Unix時間是自紀元以來的秒數,所以你需要爲MongoDB乘以x1000。 – greyfairer