Study

[Node.js 프로젝트 투입 일주일 전] MongoDB설치와 Document생성

이웃비 2022. 5. 14. 19:56

 

MongoDB 설치

 

관계형 데이타베이스는 테이블과 열에 정보를 저장한다. 

하지만 MongoDB는 컬렉션(Collection)과 문서(Document)에 정보를 저장한다.

 

1. MongoDB 접속

https://www.mongodb.com/

 

MongoDB: The Application Data Platform

Get your ideas to market faster with an application data platform built on the leading modern database. MongoDB makes working with data easy.

www.mongodb.com

2. Try Free 클릭

3. 가입이 안 되어 있다면, 가입 진행

4. 다운로드 창에서 MongoDB Community Server를 설치한다

링크 : https://www.mongodb.com/try/download/community

 

MongoDB Community Download

Download the Community version of MongoDB's non-relational database server from MongoDB's download center.

www.mongodb.com

MongoDB Community Server

5. next 버튼을 눌러 다운로드를 진행한다. Setup Type은 Complete를 선택한다

compass는MongoDB공식 DB툴이다

6. 설치가 완료되면 MongoDB Compass가 실행된다

 

 

환경 변수 설정

 

1. 제어판에서 '시스템 환경 변수 편집'을 실행한다

2. 환경 변수를 클릭한다

3. 시스템 변수 에서 Path를 선택하고 '편집'을 누른다

4. 찾아보기로 MongoDB가 설치된 폴더의 Server/bin 폴더를 선택해서 추가한 후 확인확인으로 확정한다

5. cmd(명령 프롬포트)를 열어 'mongo --version'으로 몽고디비의 버전을 확인 할 수 있다

 

 

관리자 계정 추가

 

처음 MongoDB를 설치하면 별도의 계정 인증 없이 MongoDB에 접속할 수 있고, 기본 데이터베이스인 admin이 있다.

MongoDB는 데이터베이스마다 인증된 사용자로 관리할 수 있으므로, 사용자 계정을 추가한다.

 

1. admin 데이터베이스에 접속한다

명령 프롬포트 창을 열고 'mongo'라고 입력하여 mongoDB 쉘(Shell)을 실행한 후 

** 쉘이란? -> https://jhnyang.tistory.com/57

'use admin' 을 치고 실행한다

 

2. createUser()함수를 이용해 사용자 계정을 생성한다

사용자 이름은 'root", 비밀번호는 '1234', 권한은 모든 권한이 있는 'root'로 생성한다

 

3. 인증된 사용자만 MongoDB를 사용할 수 있도록 변경

config파일에서 설정을 변경해주면 된다

나는 C:\Program Files\MongoDB\Server\5.0\bin 에 있는 mongod.cfg파일에 들어가 security부분을 수정해주었다

#security:
  authorization: enabled

config파일에 있는 다른 설정들의 의미는 다음과 같다

  • systemLog : 로그 파일 위치 및 조작 방법
  • storage :  데이터베이스 파일 저장 위치
  • net : 네트워크 정보
  • security : 인증 활성화

 

 

데이터베이스 및 컬렉션 생성하기

 

1. Compass툴을 열고 접속한다

 

2. 기본적으로 세 개의 데이터베이스(admin, config, local)이 있다. 'CREATE DATABASE'로 새롭게 데이터베이스를 생성한다

Database name : dev

Collection name :  customers

Database - dev 가 생성된 것 확인

dev를 클릭하면 Collection - customers가 생성된 것도 확인할 수 있다

 

3. 이제 Document를 생성해준다.

Document는 RDBS의 테이블의 열과 같다. 하나의 정보인 셈이다.

customers을 클릭하고 들어가서 'APP DATA' - 'Insert Document'를 클릭하여 다음과 같이 입력해준다

{  
  "name" : "John Doe",
  "email" : "john@email.com",
  "phone" : "010-0000-0000",
  "address" : ""
}

입력하려고 보면 id가 이미 들어가 있을수도 있다.

MongoDB에서는 컬렉션에 새로운 문서가 추가될 때마다 자동으로 '_id'에 유일한 키 값이 생성된다.

 

용어가 익숙치 않았는데 이렇게 정리 할 수 있을 것 같다

RDBS                               MongDB

컬렉션(Collection)    테이블(Table)

문서(Document)       열(Collum)

앞으로 배우겠지만 nodeJS에서는 문서를 하나의 모델(Model)로, 각 필드의 속성을 스키마(Schema)로 부르더라