MongoDB with Spring Boot
MongoDB 란?
- 문서 기반 NoSQL 데이터베이스
- Json 형식으로 데이터를 저장한다. (BSON)
SQL | MongoDB |
Database | Database |
Table | Collection |
Column | Field |
Row | Document |
Foreign Key | Sub Document(Reference) |
설치
brew tap mongodb/brew
brew update
brew install mongodb-community@6.0
brew install mongodb-community-shell
- 시작
brew services start mongodb-community@6.0
ㆍlocalhost:27017 에서 확인 가능
- 정지
brew services stop mongodb-community@6.0
참고 : https://jie0025.tistory.com/532
[NoSQL] MongoDB란? 맥북(M1) 몽고디비, compass 설치
✅ MongoDB란? 필요한 쿼리 제공 및 인덱싱을 활용해 원하는 수준의 확장성과 유연성을 제공하는 문서 데이터베이스. NoSQL 데이터베이스 시스템이다. 문서지향 데이터베이스로JSON과 유사한 BinaryJSO
jie0025.tistory.com
* Studio 3T를 활용해서 실습합니다.
Create
- 특정 문서의 저장할려는 필드 수와 필드 집합이 다를 수 있다.
- 특정 문서 내에 해당 필드가 없을 수 있으며 따라서 문서의 특정 필드에 빈 값이나 null 값을 삽입할 필요가 없다.
Read
- MongoDB에서는 Json 형식으로 키와 값이 채워진 형태로 검색한다.
AND 쿼리와 OR 쿼리
IN 쿼리
Update
- update()는 기본적으로 하나를 변경한다.
- 다수를 한꺼번에 변경할려면 updateMany() 를 써야한다.
DELETE
- remove() 사용
FIND
- find() 사용
- 하위 문서 필드에서의 FIND는 department.department_name 와 같이 dot으로 구분
- like
{
"mail": /gmail/
}
- StartsWith
{
"name": /^John/
}
- sort
ㆍ{"name" : 1} : 이름기준으로 오름차순 ( -1이면 내림차순 )
How to use it in Spring Boot
Spring Data JPA | Spring Data MongoDB |
@Entity | @Document |
@Column | @Field |
JpaRepositroy | MongoRepository |
- JPA의 사용 방식이랑 매우 흡사하다.
- Collection 끼리의 참조 관계를 만들고 싶다면?
ㆍ@DBRef 를 사용한다.
코드 참조 : https://github.com/minit97/NoSQL-study/tree/main/src/main/java/com/example/nosqlstudy/mongodb_study