728x90
MongoDB
- 문서 지향 데이터 모델을 사용하는 오픈 소스 NoSQL 데이터베이스 관리 시스템이다.
- 유연한 JSON과 유사한 문서에 데이터를 저장한다.
주요 용어
문서(Document)
- mongDB에서의 기본 데이터 단위로 일반적으로 JSON 형식으로 표시된다.
- 문서는 관계형 데이터베이스의 행 또는 레코드와 유사하다.
데이터베이스(Database)
- 여러개의 컬렉션으로 구성되며 컬렉션의 집합이다.
컬렉션(Collection)
- mongoDB의 문서 집합이다.(그룹으로 묶은 것)
- 컬렉션은 관계형 데이터베이스의 테이블과 유사하다.
문서 ID(Document ID)
- 각 컬렉션 내 문서에 대한 고유 식별자이다.
- 기본적으로 몽고DB는 각 문서에 _id 필드를 자동으로 생성한다.
쿼리(Query)
- 특정 기준을 바탕으로 mongoDB 데이터베이스에서 데이터를 검색하는 요청이다.
- mongoDB만의 쿼리 언어를 사용하며 관계형 데이터베이스와는 많은 차이가 있다.
인덱스(Index)
- mongoDB 컬렉션에서 데이터 검색 작업의 속도를 개선하는 데이터 구조이다.
- 효율적인 검색 및 정렬이 가능하다.
집계(Aggregation)
- 컬렉션 내 문서에 대한 데이터 변환 및 분석 작업을 수행하는 프레임워크이다.
복제(Replication)
- 고가용성을 보장하기 위해 여러 mongoDB 서버 간에 데이터를 동기화하는 프로세스이다.
샤딩(Sharding)
- 데이터를 여러 서버 또는 클러스터에 분산하여 수평적 확장성을 향상시키는 기술이다.
주요 명령어
mongosh
- mongoDB와 상호 작용할 수 있도록 db 안에 접근하는 명령어이다.
show dbs
- 데이터베이스 목록을 확인한다.
db
- 현재 db명을 확인한다.
use <데이터베이스명>
- 특정 데이터베이스로 전환한다.
- 해당 데이터베이스가 없을 경우 자동으로 생성한다.
db.createCollection('<컬렉션 이름>')
- 컬렉션을 생성한다.
show collections
- 컬렉션 목록을 확인한다.
db.<컬렉션 이름>.drop()
- 해당 컬렉션을 삭제한다.
db.<컬렉션 이름>.insertOne({<필드>: <값>, ...})
- 해당 컬렉션에 문서를 추가한다.
db.<컬렉션 이름>.find(<조건>)
- 해당 컬렉션에서 조건에 맞는 문서를 조회한다.
- () 빈 값을 넣으면 데이터 전체를 조회한다.
db.<컬렉션 이름>.updateOne(<조건>, {$set: {<수정할 필드>: <새 값>}})
- 해당 컬렉션에서 조건에 맞는 문서를 수정한다.
문서 삭제: db.<컬렉션 이름>.deleteOne(<조건>)
- 해당 컬렉션에서 조건에 맞는 문서를 삭제한다
db.<컬렉션 이름>.createIndex({<필드>: <인덱스 종류>})
- 인덱스를 생성한다.
db.<컬렉션 이름>.aggregate([{$lookup: {from: '<조인할 컬렉션 이름>', localField: '<로컬 필드>', foreignField: '<외부 필드>', as: '<출력 필드>'}}])
- 데이터를 조인한다.
참고
뤼튼, chatGPT
728x90
'넓고 얕은 데이터베이스 지식 > NoSQL' 카테고리의 다른 글
Valkey 오픈 소스를 직접 빌드하고 나만의 명령어를 추가해보자 (0) | 2025.05.13 |
---|---|
Redis & Valkey에 대해 알아보자 - 원자성과 자료구조(Siphash, Skiplist) (2) | 2025.05.11 |
Redis & Valkey에 대해 알아보자 - 개념, 역사, 캐싱, 사용 분야 (0) | 2025.05.09 |
macOS에서 mongoDB를 설치해보자 (0) | 2023.08.10 |