MongoDB에서 컬렉션을 CSV로 내보내려면 어떻게 해야 합니까?
의 모든 를 MongoDB로 해야 합니까?.csv
파일? 파일?
mongoexport --host localhost --db dbname --collection name --type=csv > test.csv
내보낼 필드 이름을 지정하라는 메시지가 나타납니다.필드 이름을 지정하지 않고 모든 필드를 내보낼 수 있습니까?
@karoly-horvath는 옳다.csv에는 필드를 입력해야 합니다.
MongoDB 문제 트래커 https://jira.mongodb.org/browse/SERVER-4224의 이 오류에 따르면 CSV로 내보낼 때 필드를 제공해야 합니다.그 문서는 확실하지 않다.그것이 에러의 원인입니다.
이것을 시험해 보세요.
mongoexport --host localhost --db dbname --collection name --csv --out text.csv --fields firstName,middleName,lastName
갱신:
이 커밋:https://github.com/mongodb/mongo-tools/commit/586c00ef09c32c77907bd20d722049ed23065398은 3.0.0-rc10 이후의 문서를 수정합니다.변하다
Fields string `long:"fields" short:"f" description:"comma separated list of field names, e.g. -f name,age"`
로.
Fields string `long:"fields" short:"f" description:"comma separated list of field names (required for exporting CSV) e.g. -f \"name,age\" "`
버전 3.0 이후:
하면 됩니다.--type=csv
--csv
폐지된 이후로요.
상세: https://docs.mongodb.com/manual/reference/program/mongoexport/ #export-in-csv-format
전체 명령:
mongoexport --host localhost --db dbname --collection name --type=csv --out text.csv --fields firstName,middleName,lastName
또한 쉼표로 구분된 필드 이름 사이에는 공백을 둘 수 없습니다.
★★★★:-f firstname, lastname
: 은은 good :-f firstname,lastname
mongoexport --help
....
-f [ --fields ] arg comma separated list of field names e.g. -f name,age
--fieldFile arg file with fields names - 1 per line
수동으로 지정해야 하고, 생각해 보면 일리가 있어요.MongoDB는 스키마가 없는 반면 CSV는 열의 레이아웃이 고정되어 있습니다.서로 다른 문서에서 사용되는 필드를 모르면 CSV 덤프를 출력할 수 없습니다.
고정 스키마가 있는 경우, 하나의 문서를 검색하여 스크립트로 필드 이름을 수집하여 mongoexport에 전달할 수 있습니다.
따라 ""를 지정하지 모든 컬렉션을 수 .--fields
(일부러)
http://drzon.net/export-mongodb-collections-to-csv-without-specifying-fields/에서 이 bash 스크립트를 실행합니다.
OIFS=$IFS;
IFS=",";
# fill in your details here
dbname=DBNAME
user=USERNAME
pass=PASSWORD
host=HOSTNAME:PORT
# first get all collections in the database
collections=`mongo "$host/$dbname" -u $user -p $pass --eval "rs.slaveOk();db.getCollectionNames();"`;
collections=`mongo $dbname --eval "rs.slaveOk();db.getCollectionNames();"`;
collectionArray=($collections);
# for each collection
for ((i=0; i<${#collectionArray[@]}; ++i));
do
echo 'exporting collection' ${collectionArray[$i]}
# get comma separated list of keys. do this by peeking into the first document in the collection and get his set of keys
keys=`mongo "$host/$dbname" -u $user -p $pass --eval "rs.slaveOk();var keys = []; for(var key in db.${collectionArray[$i]}.find().sort({_id: -1}).limit(1)[0]) { keys.push(key); }; keys;" --quiet`;
# now use mongoexport with the set of keys to export the collection to csv
mongoexport --host $host -u $user -p $pass -d $dbname -c ${collectionArray[$i]} --fields "$keys" --csv --out $dbname.${collectionArray[$i]}.csv;
done
IFS=$OIFS;
mongo를 사용하는 도커 컨테이너로의 리모트 조작: 4.2.6
mongoexport -h mongodb:27017 --authenticationDatabase=admin -u username -p password -d database -c collection -q {"created_date": { "$gte": { "$date": "2020-08-03T00:00:00.000Z" }, "$lt": { "$date": "2020-08-09T23:59:59.999Z" } } } --fields=somefield1,somefield2 --type=csv --out=/archive.csv
Mongo 나침반 도구를 사용하여 csv 또는 json 파일을 쉽게 내보낼 수 있습니다.
Mongo 나침반 MongoDB의 GUI로서 MongoDB 나침반을 사용하면 문서 구조, 쿼리, 색인화, 문서 검증 등을 보다 스마트하게 결정할 수 있습니다.상용 구독에는 MongoDB Compass에 대한 기술 지원이 포함됩니다.https://www.mongodb.com/try/download/compass
mongo export를 통해 이 작업을 수행할 수 없었습니다.모든 분야의 목록을 얻으려면 전체 컬렉션을 한 번 훑어봐야 한다는 걸 알아냈어요이를 통해 헤더를 생성합니다.그런 다음 집합을 다시 반복하여 각 문서에 대한 헤더를 채웁니다.
이것만 하려고 대본을 썼어요.개별 문서 간의 스키마 차이에 관계없이 MongoDB 문서를 csv로 변환합니다.
https://github.com/surya-shodan/mongoexportcsv
또한 내부 json 필드를 내보내려면 점(. 연산자)을 사용합니다.
JSON 레코드:
{
"_id" : "00118685076F2C77",
"value" : {
"userIds" : [
"u1"
],
"deviceId" : "dev"
}
dot 연산자를 사용한 mongo export 명령어(mongo 버전 3.4.7 사용):
./mongoexport --host localhost --db myDB --collection myColl --type=csv --out.csv --fields 값.deviceId, value.userIds
출력 csv:
value.deviceId,value.userIds
d1,"[""u1""]"
d2,"[""u2""]"
주의: 어레이는 내보내지 마십시오.위의 필드 userIds와 같은 CSV 형식이 파손됩니다.
MongoDB Atlas 사용자를 위한 솔루션!
를 추가합니다.--fields
매개 변수는 쉼표로 구분된 필드 이름으로 이중 반전 따옴표로 묶습니다.
--fields "<FIELD 1>,<FIELD 2>..."
다음은 완전한 예입니다.
mongoexport --host Cluster0-shard-0/shard1URL.mongodb.net:27017,shard2URL.mongodb.net:27017,shard3URL.mongodb.net:27017 --ssl --username <USERNAME> --password <PASSWORD> --authenticationDatabase admin --db <DB NAME> --collection <COLLECTION NAME> --type <OUTPUT FILE TYPE> --out <OUTPUT FILE NAME> --fields "<FIELD 1>,<FIELD 2>..."
나한텐 이게 통하네 해봐
mongoexport --host cluster0-shard-dummy-link.mongodb.net:27017 --db yourdbname --forceTableScan --collection users --type json --out /var/www/html/user.json --authenticationDatabase admin --ssl --username Yourusername --password Yourpassword
위 cmd는 필터 필드를 원하는 경우 사용자 컬렉션의 전체 데이터를 반환하고 --fields=email,name을 추가합니다.
오류를 안고 있는 모든 분들을 위해.
이에 대한 간단한 설명과 함께 해결책을 제시하겠습니다.
접속 명령어:-
mongoexport --host your_host --port your_port -u your_username -p your_password --db your_db --collection your_collection --type=csv --out file_name.csv --fields all_the_fields --authenticationDatabase admin
--host --> Mongo 서버의 호스트
--port --> Mongo 서버 포트
-u --> 사용자 이름
-p --> 패스워드
--db --> 내보낼 db
--collection --> 내보낼 컬렉션
--type --> CSV의 내보내기 타입
--out --> 내보낼 파일 이름
--fields --> 내보내는 모든 필드(CSV의 경우 쉼표 사이에 공백은 넣지 마십시오)
--authenticationDatabase --> 모든 사용자 정보가 저장되어 있는 데이터베이스
수집을 CSV 형식으로 내보내는 데 사용되는 명령어는 다음과 같습니다.
주의:naag
데이터베이스,employee1_json
컬렉션입니다.
mongoexport --db naag--collection employee1_json --type csv --out /home/orienit/work/mongodb/employee1_csv_op1
언급URL : https://stackoverflow.com/questions/6814151/how-to-export-collection-to-csv-in-mongodb
'source' 카테고리의 다른 글
Angular에서 브로드캐스트 이벤트를 테스트하려면 어떻게 해야 합니까?JS (0) | 2023.03.25 |
---|---|
wp-config를 사용하여 워드프레스로 SSL을 올바르게 강제합니다.php (0) | 2023.03.25 |
AngularJS 글로벌http 폴링 서비스 (0) | 2023.03.20 |
@RequiredArgsConstructor(onConstructor = @_(@Autowired)에 수식자를 추가할 수 있습니까? (0) | 2023.03.20 |
구문 분석하기 전에 문자열이 유효한 json인지 확인하시겠습니까? (0) | 2023.03.20 |