programing

mongo 명령 결과를 플랫 파일로 가져오는 방법

muds 2023. 5. 1. 22:04
반응형

mongo 명령 결과를 플랫 파일로 가져오는 방법

MongoDB 명령의 결과를 플랫 파일로 내보내려면 어떻게 합니까?

예를 들어, 내가 받을 경우db.collectionname.find()납작한 줄로

나는 노력했다.db.collectionname.find() >> "test.txt"효과가 없는 것 같습니다.

명령줄에서 다음을 시도할 수 있습니다.

mongo 127.0.0.1/db --eval "var c = db.collection.find(); while(c.hasNext()) {printjson(c.next())}" >> test.txt

localhost에서 실행 중인 'db'라는 데이터베이스와 'collection'이라는 컬렉션이 있다고 가정하면 모든 레코드를 test라는 파일로 내보냅니다.txt

실행하려는 더 긴 스크립트가 있는 경우 script.js 파일을 생성하고 다음을 사용할 수도 있습니다.

mongo 127.0.0.1/db script.js >> test.txt

이것이 도움이 되길 바랍니다.

mongo 셸에서 직접 수행할 방법은 없지만 mongoexport를 통해 쿼리를 실행하고 결과를 -q 및 -o 옵션이 있는 파일로 보낼 수 있습니다.

mongoexport -h mongo.dev.priv -d models -c profiles -q '{ $query : { _id : "MRD461000" } }' -o MRD_Series1.json

위의 히트는 _id = "MRD6400"에 대한 JSON 문서를 가져오는 모델 데이터베이스의 프로파일 컬렉션을 쿼리합니다.나한테 효과가 있어요.

사용

mongo db_name --username user --password password < query1.js >> result.txt

시도 - 쿼리의 데이터가 포함된 json 파일을 반환합니다. 변경할 수 있습니다..json위해서.txt기타 등등.

mongoexport --db products --collection clicks --query '{"createdInt":{$gte:20190101}, "clientId":"123", "country":"ES"}' --out clicks-2019.json

Peshkira의 답변에서 실제 db가 되어야 하는 db를 놓쳤기 때문에, 셸에 있는 하나의 라이너에 대한 일반적인 구문은 다음과 같습니다(암호가 없다고 가정).

mongo <host>:<db name> --eval "var x = <db name>.<collection name>.<query>; while(x.hasNext()) { printjson( x.next() ) }" >> out.txt

저는 Mongo 3+로 Mac과 Google 클라우드 Ubuntu 15에서 모두 테스트했습니다.

MongoDB Compass를 설치하면 쿼리 결과를 Json/CSV 파일로 내보낼 수 있는 도구가 있습니다.

mongoexport --host 127.0.0.1 --port 27017 --username youruser -p yourpass \
   -d yourDatabaseName -c collectionName --type csv \
   --fields field1,field2 -q '{"field1" : 1495730914381}' \
   --out report.csv

mongoexport --dbdb_name --collection collection_name --csv --out file_name.csv -f 필드1, 필드2, 필드3

언급URL : https://stackoverflow.com/questions/12823990/how-to-get-mongo-command-results-in-to-a-flat-file

반응형