NoSQL/MongoDB

MongoDB with Spring Boot

PHM 2023. 11. 13. 16:00

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