MongoDB Document
MongoDB에서 Document란 객체와 유사하게 Field ~ value로 데이터를 저장하고 구성한다. Document에서 필드는 데이터의 고유한 식별자가 되고, 값은 식별자와 관련된 데이터를 의미한다.
이 처럼 field~value로 묶인 Document 모음을 Collection이라고 한다. 데이터베이스는 여러개의 Collection으로 구성된다. Collection은 MongoDB의 Document로 구성된 저장소다. Document 간 공통된 Field가 존재할 수 있고, 한개의 데이터베이스에는 많은 Collection이 존재한다. Collection 마다 많은 Document가 존재한다.
{
<Field> : <value>,
<Field> : <value>,
"name" : "About-Tech",
"title" : "MongoDB Document",
"time" : 10,
}
JSON vs BSON
shell을이용해서 Document를 조회할 때 Document는 JSON(Javascript Object Notation) 형식으로 출력된다. JSON 형식으로 Document를 작성하기 위해서는 특정 조건이 만족되어야 한다.
- Document의 시작과 끝은 {} 로 시작되고 끝나야 한다.
- Field와 Value가 콜론( : )으로 구분되어야 한다. Field와 Value를 포함하는 쌍은 쉼표( , )로 표시된다.
- 문자열 Field는 쌍따옴표( "")로 감싸야 한다.
{
"_id" : "4351512",
"data" : ISODate("2022-05-31T05:00:00Z"),
"listing_id" : "123123123",
"reviewer_id" : "45943242",
"comments" : "Here Tallest Building in the world istikala caddesdii"
}
Document는 JSON형식으로 읽고 출력된다. 간편한 형식으로 데이터를 저장하기 때문에 데이터 입출력에 자주 사용되는 포맷이다. 하지만 parsing 작업에 시간이 많이 걸리고 메모리 사용이 비효율적이라는 단점을 동시에 가지고 있다. 또한 JSON은 기본 데이터 타입만 지원하기 때문에 제약사항이 존재한다. 이 문제를 해결하기 위해 등장한 포맷이 BSON(Binary JSON)이다.
BSON(Binary JSON)
BSON은 이진법에 기반을 둔 포맷이다. JSON보다 메모리 사용이 효율적이고, 빠르다. 또한 JSON 보다 더 많은 데이터 타입을 처리할 수 있다. MongoDB에서도 JSON 형식으로 작성된 모든 데이터를 처리하지만, 내부에서는 속도/효율성/유연성의 강점을 가진 BSON으로 데이터를 처리한다.
Data Import / Export
Node에 데이터를 가져오거나 내보내는 경우 효율적인 데이터 형식이 따로 존재한다. MongoDB의 데이터 저장은 BSON으로 처리되고, JSON으로 출력된다. 두 포맷의 특징이 다르기 때문에 사용용도도 달라진다. 만약 단순히 백업 저장을 위한 데이터 처리는 가볍고 처리속도가 빠른 BSON으로 진행하는 것이 효율적이다. 하지만 사람이 읽어야 하는 데이터 출력이라면 JSON으로 처리되어야 한다.
① Export
BSON 형식은 export 경우 mongodump 명령어를 사용하고, JSON 형식의 데이터를 내보내기 위해서는 mongoexport를 사용한다. JSON 형식의 데이터를 내보낼 때는 내보낼 컬렉션과 파일의 이름을 정확하게 명시해 주어야 한다.
// Export BSON
mongodump --uri "<Atlas Cluster URI>"
// Export JSON
mongoexport --uri "<Atlas Cluster URI>"
--collection=<collection name>
--out=<filename>.json
//Atlas Cluster URI
"mongodb+srv://<username>:<password>@<cluster>.mongodb.net/database name"
② import
BSON 형식 데이터를 가져오기 위해서는 mongorestore 명령어를 사용하고, JSON 형식 데이터는 mognoimport 명령어를 사용한다. URI를 사용해서 가져올 리소스의 위치를 명시해줘야 한다.
// Import BSON
mongorestore --uri "<Atlas Cluster URI>"
--drop dump
// Import JSON
mongoimport --uri "<Atlas Cluster URI>"
--drop=<filename>.json
'Programming' 카테고리의 다른 글
[Database] MongoDB operators list, 연산자 종류 사용법 (0) | 2022.05.31 |
---|---|
[Database] MongoDB CRUD ! (0) | 2022.05.31 |
[Database] MongoDB란? NoSQL, 도큐먼트 데이터베이스, cluster replica set Instance (0) | 2022.05.31 |
[Database] 3개 이상 테이블 LEFT RIGHT JOIN 하기 (GROUP BY 사용) (0) | 2022.05.30 |
[Database] MySql User 비밀번호 확인 변경 하는 방법 (0) | 2022.05.30 |
댓글