데이터베이스 관련 명령어
- 데이터베이스 생성 또는 전환
use [데이터베이스 이름]- 지정된 데이터베이스로 전환하거나 없으면 새로 생성합니다.
- 현재 데이터베이스 확인
db- 현재 사용 중인 데이터베이스를 표시합니다.
- 데이터베이스 목록 조회
show dbs- 서버에 존재하는 모든 데이터베이스 목록을 보여줍니다.
- 데이터베이스 삭제
db.dropDatabase()- 현재 선택된 데이터베이스를 삭제합니다.
- 데이터베이스 상태 확인
db.stats()- 현재 데이터베이스의 통계 정보를 제공합니다.
컬렉션 관련 명령어 예제
컬렉션 생성
db.createCollection("users", { capped: false })이 예제는 'users'라는 이름의 새로운 컬렉션을 생성합니다.
capped옵션은 해당 컬렉션이 용량 제한이 있는지 여부를 결정합니다.컬렉션 생성 관련 옵션
Capped 컬렉션 생성
db.createCollection("log", { capped: true, size: 100000 })- "log"라는 이름의 컬렉션을 생성하고, 이를 capped 컬렉션으로 지정합니다.
size는 컬렉션의 최대 크기를 바이트 단위로 설정합니다. 이 경우 컬렉션의 크기가 100,000바이트를 초과하면, 가장 오래된 문서부터 새 문서로 대체됩니다.
- "log"라는 이름의 컬렉션을 생성하고, 이를 capped 컬렉션으로 지정합니다.
문서 유효성 검사가 있는 컬렉션 생성
db.createCollection("contacts", { validator: { $jsonSchema: { bsonType: "object", required: ["phone"], properties: { phone: { bsonType: "string", description: "must be a string and is required" }, email: { bsonType: "string", pattern: "@mongodb\.com$", description: "must be a string and match the regular expression pattern" } } } } })- "contacts"라는 컬렉션을 생성합니다. 이 컬렉션은 JSON 스키마를 사용하여 유효성 검사를 적용합니다. 여기서는
phone필드가 필수이며,email필드는 특정 패턴을 따라야 합니다.
- "contacts"라는 컬렉션을 생성합니다. 이 컬렉션은 JSON 스키마를 사용하여 유효성 검사를 적용합니다. 여기서는
특정 스토리지 엔진 옵션을 사용하는 컬렉션 생성
db.createCollection("myData", { storageEngine: { wiredTiger: { configString: "block_compressor=zlib" } } })"myData"라는 컬렉션을 생성하면서 WiredTiger 스토리지 엔진에 대한 특정 설정을 지정합니다. 여기서는
block_compressor옵션을zlib으로 설정하여 데이터 압축을 사용합니다.storageEngine 옵션들
- WiredTiger:
- MongoDB 3.2 버전부터 기본 스토리지 엔진으로 사용됩니다.
- 고성능, 고압축, 멀티스레딩 지원 등이 특징입니다.
- 문서 수준의 잠금(Document-Level Locking) 기능을 제공하여 동시성을 향상시킵니다.
- 데이터 압축과 색인 압축을 지원합니다.
- In-Memory Storage Engine:
- 데이터를 메모리 내에서만 관리하는 엔진입니다.
- 높은 처리 속도와 낮은 지연 시간이 필요한 애플리케이션에 적합합니다.
- 데이터 지속성은 제공하지 않으므로, 주로 캐시나 실시간 데이터 분석에 사용됩니다.
- MMAPv1:
- MongoDB 3.0 버전 이전의 기본 스토리지 엔진입니다.
- 각 컬렉션별로 별도의 파일을 사용하며, 파일 레벨 잠금을 지원합니다.
- WiredTiger에 비해 더 낮은 수준의 동시성과 압축 기능을 제공합니다.
- MongoDB 4.0 버전부터는 더 이상 기본 엔진으로 사용되지 않으며, 추후 버전에서는 지원이 중단될 예정입니다.
- RocksDB (써드파티):
- Facebook에서 개발한 Key-Value 스토어 기반의 스토리지 엔진입니다.
- 고성능 쓰기 작업과 효율적인 스토리지 사용이 특징입니다.
- WiredTiger와 비슷하게 문서 수준의 잠금 기능을 제공합니다.
- 일부 MongoDB 배포판에서 선택적으로 사용할 수 있습니다.
- WiredTiger:
컬렉션 목록 조회
show collections- 현재 데이터베이스에 있는 모든 컬렉션의 목록을 표시합니다.
컬렉션 이름 변경
db.users.renameCollection("customers")- 'users' 컬렉션의 이름을 'customers'로 변경합니다.
컬렉션 삭제
db.customers.drop()- 'customers'라는 이름의 컬렉션을 삭제합니다.
'Database' 카테고리의 다른 글
| Database. 5일차 - MongoDB(비교연산과 논리연산) (0) | 2024.02.19 |
|---|---|
| Database. 4일차 - MongoDB의 데이터 타입 (0) | 2024.02.19 |
| Database. 4일차 - MongoDB란? (0) | 2024.02.19 |
| Database. 3일차 - NoSQL의 데이터 타입 (0) | 2024.02.19 |
| Database. 3일차 - NoSQL의 주요 종류 (0) | 2024.02.19 |