MongoDB - Compass 사용법
Compass는 MongoDB 데이터를 쿼리 및 분석할 수 있는 GUI 도구입니다.
Compass 다운로드 및 설치
https://www.mongodb.com/try/download/compass 에 접속하여 원하는 OS 환경의 소프트웨어를 다운로드 합니다.
본 문서에서는 Window10 에 msi 버전을 다운로드하여 설치하였습니다.
또는 아래 화면처럼 MongoDB 설치 시 나타나는 창에서 "Install MongoDB Compass"를 선택해서 설치할 수도 있습니다.
별다른 설정없이 바로 설치가 되고 프로그램이 수행됩니다.
MongoDB에 연결
PC에 MongoDB가 설치되어 있다면 DB 접속 URI 를 mongodb://localhost:27017 로 설정한 후 [Connect] 버튼을 클릭하면 MongoDB 에 접속됩니다.
MongoDB에 다른 데이터베이스를 생성하지 않았다면 기본적으로 admin, config, local 3개의 데이터베이스가 보입니다.
원격의 DB에 접속할 경우
- MongoDB의 경우: mongodb://host:port/database. 호스트는 호스트 이름, IP 주소 또는 UNIX 도메인 소켓일 수 있습니다. 연결 문자열이 포트를 지정하지 않는 경우 기본 MongoDB 포트인 27017을 사용합니다.
- MongoDB Atlas의 경우: mongodb+srv://server.example.com/database. 호스트는 DNS SRV 레코드에 해당하는 호스트 이름일 수 있습니다. SRV 형식에는 포트가 필요하지 않으며 기본 MongoDB 포트인 27017을 사용합니다.
Database 생성
"Databases" 메뉴의 우측 "+" 기호를 클릭한 후 아래와 같은 화면에서 "Database Name"과 "Collection Name"을 입력한 후 [Create Database] 버튼을 클릭하여 데이터베이스와 Collection을 생성합니다.
데이터 입력
아래와 같은 화면에서 [ADD DATA] - Insert document 메뉴를 클릭합니다.
"Insert Docuement" 화면에 JSON 형식으로 key: value 형태로 값을 입력한 후 [Insert] 버튼을 클릭합니다.
JSON 형식과 테이블 형식으로 데이터를 입력할 수 있습니다.
"_id" 필드는 MongoDB에서 자동으로 입력하는 Primary Key 이며, 데이터타입은 ObjectId 타입입니다.
입력 시 ordered 옵션을 사용할 수 있습니다. 기본값은 true 입니다. insertMany로 여러 데이터 입력 시 ordered 가 true인 경우 처음 오류를 만나는 시점에서 입력을 중지합니다. 기존 데이터는 rollback하지 않습니다. 즉 순차적으로 입력합니다.
반면, ordered가 false인 경우 병렬로 데이터를 입력합니다. 그래서, 중복 오류가 발생하는 데이터를 제외하고 모두 입력됩니다.
JSON 형식 데이터 입력
TABLE 형식 데이터 입력
조회조건 입력
화면의 Filter 입력란에 { field: value} 형식으로 입력한 후 [Find] 버튼을 클릭하여 조회합니다.
Document 수정
Document 오른쪽의 연필 모양의 아이콘(Edit)을 클릭한 후, 수정하고자 하는 데이터를 수정하고, [UPDATE] 버튼을 클릭합니다. 예제에서는 홍길동을 신홍길동이라는 이름으로 변경하였습니다.
Document 삭제
Document 오른쪽의 휴지통 모양의 아이콘(Delete)을 클릭하여 Document를 삭제합니다.
전체 Document 수정 및 삭제
전체 document 수정 및 삭제는 아래의 버튼으로 수행합니다.
EXPORT DATA
- 한글 깨짐 : notepad로 연 후 다른 이름으로 저장 시 인코딩 형식을 UTF-8(BOM)으로 저장한 후 엑셀로 다시 엽니다. 또는 notepad ++ 을 사용할 경우 Encoding 메뉴에서 UTF-8 BOM을 선택한 후 저장하면 됩니다.
IMPORT DATA
- JSON or CSV file
-
<ObjectId의 구조>
ObjectId는 3개의 영역으로 나뉘어져 있다
- 첫번째 4byte는 Unix epoch 이후 초 단위로 측정된 ObjectId의 생성을 나타내는 4바이트 타임스탬프 값
- 두번째 5byte는 프로세스당 한 번 생성 되는 5바이트 임의 값이며 이 임의 값은 기계와 프로세스에 고유
- 세번째 3byte는 임의의 값으로 초기화 되는 3바이트 증분 카운터