いくつかのテーブルを MySQL から mongoDB に移行する必要があります。Web を検索した後、MySQL を CSV にエクスポートし、その CSV から mongoDB にインポートするのが最も速くて簡単な方法であるように思えます。
そのクエリを使用してMySQLをエクスポートしています:
select * into outfile '/tmp/feed.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY ''
from feeds;
しかし、問題が 1 つあります。
MySQL フィールドが の場合、NULL
MySQL エクスポートは\N
(または\\N
) を CSV ファイルに書き込みます。そのファイルをインポートすることにより、mongoDB\\N
は値ではなく as 文字列をインポートしNULL
ます。
mongoDB の観点では「空白」ではない--ignoreBlanks
ため、mongoDB インポート オプションは機能しません。\\N
だから私の質問:
NULL
1.)としてエクスポートしないようにするにはどうすればよい\\N
ですか?
また
2.) どのように、または空の値としてmongodbimport
読み取り/解釈 できますか?\\N
NULL
ところで、CSV を後処理して検索して置き換えるオプションはありません。\\N
1.) の可能な答えは、select ステートメントの変更である可能性があります。SELECT IFNULL( field1, "" )
ただし、この場合、すべての列を定義してチェックする必要があります。すべての列が select ステートメントで定義されている場合、エクスポート スクリプトはそれほど柔軟ではありません。
//編集: その import<->export をいじっているときに、別の問題を見つけました: 日付フィールドも mongoimport からの文字列として解釈されます