0

RDBMS から JSON としてエクスポートされた GB がいくつかあります。すべての日付は厳密な JSON 形式、つまり{$date:1354810746067}.

Mongoimport は、目的の ISODate に変換していないようです。としてフォーマットされている場合にのみ機能しDate(1354810746067)ます。

{$date:..} を ISODate として受け入れるように mongoimport を微調整するオプションはありますか?

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

しかし、私の正規表現スキルはそこで失敗しました:-(。

4

2 に答える 2

1

私は今mongoimportをしていないので、ここであなたを助けることはできません.

ただし、 sed の場合は、 sed でいくつかの引用符を試してください。

sed -e 's/{$date:\([0-9]*\)}/Date\(\1\)/g' file

PS:あなたの正規表現は良いです。

于 2012-12-13T17:33:23.943 に答える
0

もう一方は有効な JSON ではありません: {"$date":1354810746067}

于 2013-10-10T11:54:26.377 に答える