MongoDB 내용을 텍스트 파일로 추출하기

리눅스/MongoDB|2020. 10. 28. 09:03
반응형

MongoDB 내용을 텍스트 파일로 추출해야 할 일이 있어서 알아봤는데

그 방법에는 두 가지가 있습니다.



[ 첫번째 방법 ]


우선 아래와 같이 도큐멘트의 개수를 확인합니다.

# mongo sysdocu -u prince -p --quiet --eval 'db.members.count()'

12


* 설명 : prince 계정으로 sysdocu 데이터베이스의 members 컬렉션 도큐멘트 개수 확인


그리고 출력된 개수와 동일하거나 많은 수의 범위까지 파일로 추출합니다.

저장 형태는 toArray() 로 인해 key 별로 줄바꿈이 되어 예쁘게 출력 되지만,

리눅스에서 텍스트를 가공하고자 할때는 한줄로 표시되는 것이 편하므로 해당 toArray() 는 제외합니다.


# mongo sysdocu -u prince -p --quiet --eval 'DBQuery.shellBatchSize = 20; db.members.find({}).limit(20).toArray()' > result.json


* 설명 : 도큐멘트 개수 조회 결과가 12 이므로 12로 하거나 더 많은 20으로 해도 됩니다.


result.json 파일에 내용이 저장 되었습니다.



[ 두번째 방법 ]


# mongo sysdocu -u prince -p |tee result.txt


위와 같이 실행하면 별다른 반응없이 일반적인 MongoDB 콘솔 로그인이 됩니다.

하지만 MongoDB 콘솔을 빠져 나올때 까지 (exit) 화면에 출력되는 내용은

result.txt 파일에 저장되게 됩니다.

화면 출력이 이루어져야 하므로 도큐멘트 개수가 많은 경우 첫번째 방법보다 속도가 느립니다.


반응형

댓글()