Mongo 컬렉션을 JSON 형식으로 덤프
mongo 컬렉션을 json 형식으로 덤프할 수 있는 방법이 있나요?셸 또는 Java 드라이버를 사용합니다.성능이 가장 좋은 것을 찾고 있습니다.
Mongo에는 컬렉션을 덤프할 수 있는 mongo export 유틸리티(문서 참조)가 포함되어 있습니다.이 유틸리티는 네이티브 libmongoclient를 사용하며 가장 빠른 방법입니다.
mongoexport -d <database> -c <collection_name>
또, 다음과 같이 도움이 됩니다.
-o
: 출력을 파일에 씁니다.그렇지 않으면 표준 출력이 사용됩니다(표준 출력).
--jsonArray
: 한 줄에 1개의 json 오브젝트가 아닌 유효한 json 문서를 생성합니다(필수).
--pretty
: 포맷된 json(표준)을 출력합니다.
mongoexport/mongo import를 사용하여 컬렉션을 덤프/복원합니다.
JSON 파일 내보내기:
mongoexport --db <database-name> --collection <collection-name> --out output.json
JSON 파일 가져오기:
mongoimport --db <database-name> --collection <collection-name> --file input.json
경고
mongoimport
그리고.mongoexport
JSON은 BSON에서 지원되는 유형의 서브셋만 나타낼 수 있으므로 리치 BSON 데이터 유형을 모두 확실하게 유지하지는 않습니다.따라서 이러한 도구로 내보내거나 가져온 데이터는 충실도를 어느 정도 잃을 수 있습니다.
또, http://bsonspec.org/ 를 참조해 주세요.
BSON은 부호화 및 복호화가 고속이 되도록 설계되어 있습니다.예를 들어 정수는 32(또는 64)비트 정수로 저장되므로 텍스트 간에 구문 분석할 필요가 없습니다.이는 작은 정수에 대해 JSON보다 더 많은 공간을 사용하지만 구문 분석 속도가 훨씬 빠릅니다.
BSON은 콤팩트함과 더불어 JSON에서 사용할 수 없는 데이터 유형, 특히 BinData 및 Date 데이터 유형을 추가합니다.
참조용 mine 명령어는 다음과 같습니다.
mongoexport --db AppDB --collection files --pretty --out output.json
Windows 7(MongoDB 3.4)에서는 cmd를 다음 위치로 이동해야 합니다.mongod.exe
그리고.mongo.exe
파일이 상주 =>C:\MongoDB\Server\3.4\bin
그렇지 않으면 알아채지 못한다고 해도 소용없다mongoexport
명령어를 입력합니다.
Mongo 문서:
mongoexport 유틸리티는 수집을 가져와 JSON 또는 CSV로 내보냅니다.쿼리에 대한 필터 또는 출력할 필드 목록을 지정할 수 있습니다.
자세한 내용은 이쪽:http://www.mongodb.org/display/DOCS/mongoexport
다음은 특정 데이터베이스 내의 모든 컬렉션을 지정된 출력 디렉토리에 덤프하기 위해 쓰는 작은 노드 스크립트입니다.
#!/usr/bin/env node
import { MongoClient } from 'mongodb';
import { spawn } from 'child_process';
import fs from 'fs';
const DB_URI = 'mongodb://0.0.0.0:27017';
const DB_NAME = 'database-name';
const OUTPUT_DIR = 'output-directory';
const client = new MongoClient(DB_URI);
async function run() {
try {
await client.connect();
const db = client.db(DB_NAME);
const collections = await db.collections();
if (!fs.existsSync(OUTPUT_DIR)) {
fs.mkdirSync(OUTPUT_DIR);
}
collections.forEach(async (c) => {
const name = c.collectionName;
await spawn('mongoexport', [
'--db',
DB_NAME,
'--collection',
name,
'--jsonArray',
'--pretty',
`--out=./${OUTPUT_DIR}/${name}.json`,
]);
});
} finally {
await client.close();
console.log(`DB Data for ${DB_NAME} has been written to ./${OUTPUT_DIR}/`);
}
}
run().catch(console.dir);
언급URL : https://stackoverflow.com/questions/8991292/dump-mongo-collection-into-json-format
'programing' 카테고리의 다른 글
Excel 시트에서 정확히 지정된 범위를 판독하는 Python Panda 데이터 프레임 (0) | 2023.04.11 |
---|---|
예약된 단어를 속성 이름으로 사용, 다시 방문 (0) | 2023.04.06 |
Google Place API - 요청된 리소스에 'Access-Control-Allow-Origin' 헤더가 없습니다.따라서 오리진 'null'은 액세스가 허용되지 않습니다. (0) | 2023.04.06 |
WordPress - Breadcrumb NavXT의 카테고리 문제 (0) | 2023.04.06 |
경고: "compass:server"(compass) 작업 실행 중 (0) | 2023.04.06 |