MySQL같은 SQL 데이터베이스와는 다른 유형의 데이터
- NoSQL의 대표주자인 mongoDB(몽고디비) 사용
- JOIN: 관계가 있는 테이블끼리 데이터를 합치는 기능(몽고디비 aggregate로 흉내 가능)
- 빅데이터, 메시징, 세션 관리 등(비정형 데이터)에는 몽고디비 사용하면 좋음
1. mondgoDB 설치
mongoDB 공식 사이트(https://www.mongodb.com/try/download/community)
Window
Next를 눌러 다음으로 넘어가다가 Complete로 모든 프로그램 기능 설치
Install MongoD as a Service 체크 해제하기
컴퍼스도 같이 설치하는 옵션에 체크하여 설치
워크벤치와 비슷한 기능을 함
윈도의 경우 C:\에 data 폴더를 만들고 그 안에 db 폴더를 만듦
콘솔로 몽고디비가 설치된 경로로 이동해 몽고디비를 실행
(기본적으로 C:\Program Files\MongoDB\Server\4.2\bin)
admin 권한을 설정하여 디비에 비밀번호 걸기
mongod를 입력했던 콘솔을 종료한 후 mongod --auth 명령어로 접속
--auth는 로그인이 필요하다는 뜻
mongo를 입력한 콘솔도 종료한 후 mongo admin –u 이름 –p 비밀번호로 접속
macOS
Homebrew로 몽고디비를 설치하는게 편함
brew 설치 후 mongodb 설치
몽고디비 실행
콘솔에 mongo로 접속
관리자 비밀번호 설정 후 몽고디비 재시작, 설정 파일 수정
콘솔이 전환되면 마지막에 두 줄을 추가하고 :wq!로 저장
다시 mongodb를 실행하고 mongo admin –u 명령어로 접속
macOS 컴퍼스 설치하기
공식 사이트를 통해 컴퍼스 설치(https://mongodb.com/download-center/compass)
설치 후 응용 프로그램으로 드래그
리눅스 ( 우분투 ) 몽고디비
GUI를 사용하지 않으므로 콘솔에 다음 명령어들을 순서대로 입력
어드민 계정 설정 후, 설정 파일을 바꿔 인증 사용하도록 변경
conf 파일 맨 끝 두줄 추가 후 :wq!로 저장
2. 커넥션 생성하기
컴퍼스(MongoDB Compass Community)로 접속
Fill in connection Fields individually 클릭
Authentication 을 Username/Password로 변경, 몽고디비 계정 이름과 비밀번호 입력
접속 성공 화면
몽구스 ODM
몽고디비 작업을 쉽게 할 수 있도록 도와주는 라이브러리
- ODM: Object Document Mapping: 객체와 다큐먼트를 매핑(1대1 짝지음)
- 몽고디비에 없어 불편한 기능들을 몽구스가 보완
- 테이블과 유사한 기능, JOIN 기능 추가
몽구스 예제는 https://github.com/zerocho/nodejs-book/tree/master/ch8/8.6/learn-mongoose
- 프로젝트 세팅 후, 콘솔을 통해 경로로 이동한 후 package.json 설치
몽구스를 통해 몽고디비 연결하기
- 인증은 admin 데이터베이스에서, 서비스는 dbName 데이터베이스에서
app.js로 연결
- schemas/index.js의 함수가 실행됨
- mongoose.connect 함수가 몽고디비에 연결을 시도
- mongoose.set은 디버깅 모드(모드를 켰을 때 콘솔에 쿼리가 찍힘)
- 연결이 끊기면(disconnection) 다시 연결을 시도
'DB > NoSQL' 카테고리의 다른 글
MongoDB CRUD 작업하기 (0) | 2021.01.01 |
---|