MongoDB와 MongoDB-Compass

김하은·2023년 6월 11일
0

MongoDB와 ODM

몽고DB는 문서형태의 컬렉션들로 데이터를 저장.

MongoDB가 데이터 베이스. =>mac의 경우 brew에 설치 + 쉘도 같이 설치
설치가 되면 mongo라는 명령어로 쉘 접속 가능 ==> 이렇게 mongo에 접속이 가능한 이유는 현재 mongo라는 프로그램이 24시간 켜져있기 때문( mongoDB가 켜져있는지 확인하려면 브라우저에서 localhost:27017 로 접속을 해보면됨. 포트 27017은 mongoDB 기본포트)

현재 내 컴퓨터 mongoDB를 실행시켜 접속중.

이후, 내 컴퓨터에서 실행중인 mongoDB는 종료하고 도커 안에서 실행시킴.
이전시간, 도커를 만들어 express서버를 실행시켰음.
이번에는 도커를 하나 더 만들어 mongoDB를 실행시킴.
그리고 Docker-compose를 이용해 두개를 연결되게 그룹핑해줌.

이 쉘에서 어떤 데이터베이스들이 있는지, 어떤 컬렉션들이 있는지 확인할 수 있다.

show databases

=> 데이터 베이스들을 보여줘 => 이 명령어로 admin, config, local 이렇게 세가지가 나오는데(기본 세팅 폴더) 이 각각을 하나의 폴더라고 보면 된다. => 기존 폴더는 놔두고 새 폴더를 만들어 작업을 진행해 보자.

MongoDB-Compass

MongoDB를 명령어가 아닌 시각화 해서 볼 수 있는 도구라고 할 수 있다.

엑셀같이 다루기 쉽고, 쉽게 보여주는 도구.

즉, MongoDB-Compass는 DB가 아니라 DB를 보기좋게 시각화 해주는 DB관리 프로그램!!

이것을 사용하지 않았을때는 명령어를 입력해야했다. 즉, CLI(Command Line Interface)로 명령어를 입력해 사용했어야 했으나,

MongoDB관리 프로그램인 MongoDB-compass를 사용하면 클릭으로 쉽게 사용할 수 있다. 이런것을 GUI(Graphic User Interface)방식으로
그래픽이 있어 보기쉽다.

Compass에 접속해(DB가 켜져있어야함)

Create Database를 클릭.

데이터베이스 이름을 원하는대로 정하고, Collection이름을 지정.
여기서 Collection은 서류봉투로 그 안에 문서들을 저장함.
상품 관련이면 봉투이름을 상품으로, 회원이면 회원으로, 게시판이면 게시판으로 Collection이름을 정함.

Collection이름까지 정하고 Create database를 클릭하면 이렇게 원래 있던 세가지 외에 만들어준 것이 생성된것을 볼 수 있음.
추가로 Collection(서류봉투)으로 만들어 준 것까지 나옴.


이렇게 쉘에서도 확인할 수 있음.
정확히는 쉘이 메인이기에 당연히 확인이 가능해야함.
쉘이 실제 DB에 접속해 보여지는 것이기 때문!!!

컬렉션을 클릭하고, 직접 document를 추가해보자.

ADD DATA를 클릭,=> Insert document => 보면 아이디는 자동으로 생성되어있는것이 보이고, 그 아래 콤마하고 키는 문자형으로 그리고 값을 적어주면 된다. => Insert를 최종적으로 클릭하면


이렇게 문서 하나가 만들어진것이 보이게 된다.
그리고 위에 {} 를 클릭하면 이 문서에

이렇게 객체 형태로 저장이 되어있는것을 볼 수 있다. ==> 이것이 실제 저장되는 방식

(MongoDB는 NOSQL방식이고, 문서(=A4용지 같은것.)안의 객체 형태로 저장이되어 그것들이 하나의 컬렉션이 된다.)

추가로 맨끝에 표모양을 클릭하면 엑셀처럼 표로 볼 수도 있다.


짠!!

물론 실제 저장되는 형태는 객체 형태!
(={} 여기서 보이는 형태)

Shell로 확인해보기

show databases로 존재하는 데이터 베이스들을 보았다.
그중 새로 만들어둔 myproject의 데이터 베이스를 사용하려면

use 사용하려는데이터베이스이름

즉 , use myproject
=> 이렇게 하면 myproject라는 데이터 베이스를 앞으로 사용하겠다 라는 의미가 된다.
그리고 이후로 입력하는 명령어(등록 명령어, 찾기 명령어 등)들은 myproject라는 데이터 베이스 안에서 실행되게된다.( 입력하는 명령어가 어디 적용되게 될지 설정하는 부분!)


이렇게 사용하는 DB가 switch되었다고 나온다.

이후 앞으로 입력하는 명령어들은 myproject라는 현재 switch한 DB와만 관련이 있게된다.

해당 DB의 컬렉션 보기

show collections

지금 현재 myproject로 사용하는 DB를 변경하였으니 이 DB에 있는 컬렉션들을 볼 수 있다.
지금은 product라는 컬렉션만 있다.

그럼 여기 product컬렉션에 무엇이 있는지 보자

db.컬렉션이름.find()

find()는 모두 찾아줘 라는 말.
db.product.find() 라고하면 product안에 등록되어있는 document가 보여지게된다.


이렇게 저장된 형태인 객체형태로 말이다.

이렇게 명령어를 사용해 하지 않아도 되게 도와주는 관리 프로그램이 MongoDB-Compass라고한다.
compase를 사용해 클릭몇번으로 쉽게 볼 수 있고, ui적으로도 볼 수 있어 편하게 사용이 가능하다.


MongoDB종료

exit로 몽고DB에 접속했던 쉘을 나올 수 있다.

mac

brew services list

이 명령어를 사용하면 현재 켜져있는 몽고DB를 볼 수 있다.
started 되어있는 mongodb-community 를 종료해준다.

brew services stop mongodb-community

Successfully가 나오고 성공적으로 종료되었는지 확인하고 싶다면 다시

brew services list

를 입력해 Started가 있는지 본다.
stop을 하기 이전에 Started되어있던 mongodb-community 가 none 이런식으로 나오면 꺼진것이다.

이렇게 종료가 되어야 실제 24시간 켜져있는 MogoDB프로그램이 종료된 것이다.

종료가 된 이후에는 mongo라는 명령어를 쳐 shell에 접속하려해도 접속되지 않는다.

connect failed라고 나오게 됨!! (MongoDB가 켜져있지 않기 때문!!)

MongoDB 시작

mac

brew services start mongodb-community


지금 설치하고 실행한 MongoDB를 종료한다.
=> 이유: 설치 과정 복잡하고, 운영체제가 우분투 인지 macOS인지에 따라 명령어도 다르다. 따라서 도커를 사용해 환경을 통일하여 도커안에 설치를 진행해 사용해보자.

0개의 댓글