MySQL에서 mongoDB로 일부 테이블을 마이그레이션해야합니다. 웹 검색 후 CSV에 대한 MySQL 내보내기와 같으며 mongoDB에 대한 CSV에서 가져 오는 것이 가장 빠르고 쉬운 방법입니다.Null MySQL에서 mongo 로의 이전 값
는 그 쿼리를 사용하여 수출 MySQL을 해요 :
select * into outfile '/tmp/feed.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY ''
from feeds;
를하지만 한 가지 문제가있다.
MySQL 필드가 NULL
이면 MySQL 내보내기는 \N
(또는 \\N
)을 CSV 파일에 기록합니다. 해당 파일을 가져 와서 mongoDB는 \\N
을 NULL
값 대신 문자열로 가져옵니다.
mongoDB의 관점에서 \\N
이 "비어 있지"않기 때문에 mongoDB 가져 오기 옵션 --ignoreBlanks
이 작동하지 않습니다.
그래서 내 질문 :
1) 나는 \\N
로 NULL
수출을 피할 수있는 방법?
또는
2) 방법 mongodbimport
읽기/NULL
또는 빈 값으로 \\N
을 해석 할 수 있을까? 그런데
\\N
을 대체 할 CSV를 사후 처리 할 수있는 옵션이 아니다 : SELECT IFNULL(field1, "")
그러나이 경우 나는에있다 각 열을 정의하고 확인하십시오. select 문에 모든 열이 정의되어 있으면 내보내기 스크립트가 그다지 유연하지 않습니다.
// 편집 : 그 수입으로 주위 < 재생하는 동안 - 내가 다른 문제가 발견> 수출 : 또한 mongoimport에서 문자열로 해석 날짜 필드는
* * -> 왜가? – Philipp
"sed", "awk"또는 정규식을 사용하는 PHP 스크립트를 사용하여 "알 수없는"텍스트가 많은 큰 텍스트 파일을 프로세스에 게시하면 오류가 발생하기 쉽거나 강력하지 않습니다. –
이 작업을 한 번 수행하는 경우 가장 간단한 방법을 사용하고 제안 된대로 수동으로 데이터를 수정하십시오. 일상적인 것이라면 전체 프로세스를 자동화하십시오. 몽고 짐은 제한되어 있습니다. Json으로 내보낼 수 있습니까? – WiredPrairie