_id 필드가 없는 mongoexport
mongoexport를 사용하여 일부 데이터를 .json 형식의 파일로 내보내고 있지만 문서에 _id:IDVALUE tuples에 의해 도입된 큰 크기의 오버헤드가 있습니다.
비슷한 게시물을 찾았습니다 _id 필드 없이 MongoDB에서 데이터를 검색할 수 있는 방법이 있습니까?mongo에서 데이터를 검색할 때 _id 필드를 생략하지만 내보내지 않는 방법에 대해 설명합니다.다음을 사용하는 것이 좋습니다..Exclude("_id")
저는 어떻게든 포함시키기 위해 mongoexport의 --query 매개 변수를 수정하려고 했습니다..Exclude("_id")
매개 변수입니다. 그러나 지금까지 모든 시도가 실패했습니다.
이 작업을 수행하는 적절한 방법이 무엇인지 제안해 주십시오. 아니면 수출 후 기술을 사용하는 것으로 되돌려야 합니까?
감사해요.
필드를 제외할 방법이 없습니다(예:_id
) mongoexport를 사용합니다.
중간 규모의 데이터베이스에서 사용할 수 있었던 대안은 다음과 같습니다.
mongo myserver/mydb --quiet --eval "db.mycoll.find({}, {_id:0}).forEach(printjson);" > out.txt
대규모 데이터베이스(수백만 개의 레코드)에서는 시간이 걸릴 수 있으며 이 작업을 실행하면 시스템에서 수행하려는 다른 작업에 영향을 미칩니다.
효과:
mongoexport --db db_name --collection collection_name | sed '/"_id":/s/"_id":[^,]*,//' > file_name.json
파이프 출력:mongoexport
안으로jq
그리고 그것을 제거합니다._id
거기에 필드.
mongoexport --uri=mongodb://localhost/mydb --collection=my_collection \
| jq 'del(._id)'
업데이트: jq에 링크 추가.
JSON에서 내보내기를 지정한 것은 알지만 CSV 데이터를 대체할 수 있다면 네이티브 몽고 내보내기가 작동하고 위의 솔루션보다 훨씬 빠를 것입니다.
mongoexport --db <dbName> --collection <collectionName> --csv --fields "<fieldOne>,<fieldTwo>,<fieldThree>" > mongoex.csv
mongoexport
그런 선택권이 없는 것 같습니다.
ramda-cli 스트리핑으로_id
다음과 같이 표시됩니다.
mongoexport --db mydb --collection mycoll -f name,age | ramda 'omit ["_id"]'
나는 quux00의 솔루션을 적용했지만,forEach(printjson)
MongoDB Extended JSON 표기법을 출력으로 출력합니다(예:"last_update" : NumberLong("1384715001000")
.
대신 다음 행을 사용하는 것이 좋습니다.
db.mycoll.find({}, {_id:0}).forEach(function (doc) {
print( JSON.stringify(doc) );
});
mongo <server>/<database> --quiet --eval "db.<collection>.find({}, {_id:0,<field>:1}).forEach(printjson);" > out.txt
변경을 실행할 쿼리가 있는 경우""
로.''
그리고 당신의 조건을 적으세요.find
와 함께""
맘에 들다find("age":13)
.
"_id"와 같은 하위 문서 정보를 제외하는 가장 간단한 방법은 csv로 내보낸 다음 도구를 사용하여 csv를 json으로 변환하는 것입니다.
mongoexport는 "_id"를 생략할 수 없습니다.
sed는 이를 위한 강력한 명령입니다.
mongoexport --db mydb --collection mycoll -f name,age | sed '/"_id":/s/"_id":[^,]*,//'
원래 답변은 MongoExport 명령을 사용하는 Exclude _id 필드에서 왔습니다.
mongoexport 명령에서 --type=csv 옵션을 사용하면 됩니다.
mongoexport --db=<db_name> --collection=<collection_name> --type=csv --field=<fields> --out=<Outfilename>.csv
MongoDb 버전 3.4의 경우 mongoexport 명령에서 --noHeaderLine 옵션을 사용하여 csv 내보내기에서도 필드 헤더를 제외할 수 있습니다.
자세한 내용: https://docs.mongodb.com/manual/reference/program/mongoexport/
파일로 내보내고 정규식을 사용하여 빈 값 바꾸기를 사용합니다.
"_id": "f5dc48e1-ed04-4ef9-943b-b1194a088b95"
저는 용한사를 요."_id": "(\w|-)*"
,
jq를 사용하면 이를 쉽게 달성할 수 있습니다.
mongoexport -d database -c collection --jsonArray | jq 'del(.[]._id)'
다을사필지보셨까니습정해드로 해 본 적이 ?--fields
플래그? 언급되지 않은 모든 필드는 내보내기에서 제외됩니다.
를 위해 유관리를위별필파기사드수있다습도니용할고록을 .--fieldFile
.
언급URL : https://stackoverflow.com/questions/12976145/mongoexport-without-id-field
'source' 카테고리의 다른 글
기하학적 평균: 내장되어 있습니까? (0) | 2023.07.01 |
---|---|
꺼내기 요청에서 수정된 파일 제거 (0) | 2023.07.01 |
IIS가 있는 ASP.NET Core - HTTP 동사 허용되지 않음 (0) | 2023.07.01 |
설정된 시간(초)마다 코드를 실행하는 VBA Macro On Timer 스타일(예: 120초) (0) | 2023.07.01 |
data.frame 목록에서 개별 엑셀 워크시트 - R (0) | 2023.07.01 |