: 문서지향(Document-Oriented) 저장소를 제공하는 NoSQL 데이터베이스 시스템
특징
- 스키마 제약 없이 자유로움
- BSON(Binary JSON) 형태로 각 문서가 저장됨
- 배열이나 날짜 등 기존 RDMS에서 지원하지 않던 형태로도 저장이 가능
- 관계를 연결하는 JOIN이 필요 없이 한 문서에 좀 더 이해하기 쉬운 형태 그대로 정보를 저장할 수 있음
- 객체지향 프로그래밍과 잘 맞고, JSON을 사용할 때 아주 유용함
Local에서 mongoDB 연결하기
GUI(Graphical User Interface)로 MongoDB에 데이터 생성하기
1. 데이터베이스 접속
2. Create database
3. collection에 데이터 추가
4. 결과
CLI(Command Line Interface)로 생성한 데이터 확인해보기
1. shell 접속
2. 여러가지 데이터베이스 명령어
Docker-compose
: 복수 개의 컨테이너를 실행시키는 도커 애플리케이션이 정의를 하기 위한 툴
YAML 파일
로 여러 개의 docker 내부 속성을 설정하고YAML 파일
을 실행시켜 마치 docker를 일괄적으로 한 번에 실행시키는 것Dockerfile.mongo 파일 만들기
Docker-Compose.yaml 파일 만들기
: 도커로 만들어진 각자의 다른 컴퓨터들의 포트포워딩을 위해 그룹핑해줌
Express와 mongoDB의 서버를 한번에 실행시키기 위한yaml 파일
만들어주기
💡 오답노트build를 하고 컨테이너를 실행시키려고
docker-compose up
을 했더니 오류가 떴다
구글링을 해보니 3000번 포트에 이미 컨테이너가 켜져있다는 오류였다.
그래서 터미널에docker container ls
을 입력해서 켜져있는 컨테이너들을 조회하고,docker rm -f 컨테이너ID
를 입력해서 지워줬다.
그러고 다시docker-compose up
을 하니까 잘 실행되었다.
Dockerfile.mongodb를 image로 변경해보기
- Dockerfile.mongo 지우기
- Dockerfile.mongo로 정의해두었던 mongoDB의 설정을
yaml 파일
에 직접 정의Mongoose
: Node.js와 MongoDB를 위한 ODM(Object Data Mapping) library
호환성이 없는 JavaScript와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게 해줌
설치 -yarn add mongoose
[npm-mongoose]를 참고하여 index.js 파일 수정
👉 참고
mongoose.connect
: 앱이 하나의 데이터베이스만 사용하는 경우
mongoose.createConnection
: 추가 연결을 생성해야 하는 경우
mongoose.connect('mongodb://localhost/my_database')
의 형태로 작성Model 정의
board.model.js 파일 만들기
Get 데이터 조회 - index.js
Post 데이터 등록 - index.js결과
게시물 등록
게시물 조회