2013-02-23 4 views
0

mongoimport를 csv 유형으로 처리하고 주석 처리 된 라인을 무시하는 옵션을 찾을 수 없습니다. 내 CSV는 시작 문자로 "#"으로 표시된 행에 주석을 달았습니다. 기본적으로 node.js 앱을 통해 MongoDB를 호출합니다. 이것들을 무시할 방법이 없을까요? 옵션이 있는지 누군가 제안 할 수 있습니까?mongoimport csv 주석 처리 된 라인을 무시합니다.

+0

누군가 mongoimport를하는 동안 주석 처리 된 라인을 무시하는 방법을 알려줄 수 있습니까? – user1549605

답변

2

CSV (Comma Separated Values) 형식은 의도적으로 단순하며 주석을 지원하지 않습니다. mongoimport으로 전달하기 전에 주석 처리 된 줄을 미리 필터링해야합니다.

mongoimport은 명령 줄에서 사용하도록되어 있지만 Node.js 응용 프로그램에서 MongoDB와 대화하고 있다고 언급했습니다.

mongoimport을 호출하는 대신 node.js csv module을 사용하는 것이 좋습니다. 그런 다음 주석 또는 기타 형식의 편차에 대해 고유 한 줄 기반 필터링을 쉽게 수행하고 MongoDB driver을 직접 삽입 할 수 있습니다.

+0

mongoimport-csv가 주석 처리 된 코드 필터링을 지원하지 않음을 확인해 주셔서 감사합니다. node.js csv 모듈에서 처음에는 이것을 사용해 보았지만 csv에서 약 75000 개의 행을 가져와야하기 때문에 심각한 성능 문제가 발견되었습니다. 나는로드에 노드 몽고 네이티브를 사용했다. 그런 다음 node.js를 통해 mongoimport로 전환합니다. – user1549605

+0

몇 가지 [node.js CSV 모듈] (https://nodejsmodules.org/tags/csv)이 있습니다. 빠른 검색은 명백한 벤치 마크/비교를 나타내지 않았지만 [Fast-csv] (http://c2fo.github.com/fast-csv/)는 재미있어 보입니다. 여러 줄로 된 행과 같은 일부 기능을 처리합니다. 속도. – Stennie

+0

감사합니다. Stennie, 다음에 Fast-csv를 시도해 보겠습니다. 한편, 내 nodejs 코드베이스와 mongodb 서버를 env (같은 서버에 둘 다)로 옮겼습니다. 그러나 그 결과는 다음과 같이 기쁘지 않습니다. 이 문제는 해결할 수없는 네트워크 대기 시간 문제입니까? 구성 : RAM-8GB; csvdata-75000 행 = 9.12MB; 서버 - 윈도우 서버 2008; MongoDB를 연결 가능 시간 : - 브라우저 클라이언트의 로컬 호스트 - 75000 행 - 순간 브라우저 클라이언트 원격 - 15 행 - 순간 브라우저 클라이언트 원격 - 10000 행 - 6 초 브라우저 클라이언트 원격 - 20000 행 - 18 초 브라우저 클라이언트 원격 - 75000 행 - 75 초 – user1549605

관련 문제