MongoDB는 문서지향(Document-Oriented) 저장소를 제공하는 NoSQL 데이터베이스 시스템이다.
이외에도 NoSQL 데이터베이스 10gen, Couchbse, CouchDB 등이 있지만 인지도 1위를 유지하고 있다.
MongoDB에서는 데이터가
Document로 불리며, 이 데이터의 집합을Collection(RDMS에서는 Table)이라고 한다.
스키마 제약 없이 자유롭고, BSON(Binary JSON) 형태로 각 문서가 저장되며 배열(Array)이나 날짜(Date) 등 기존 RDBMS에서 지원하지 않던 형태로도 저장할 수 있기 때문이다.
관계를 연결하는 JOIN의 필요 없이 하나의 문서에 좀 더 이해하기 쉬운 형태 그대로 정보를 저장할 수 있다는 것이 특징이다.
문서지향 데이터베이스로, 객체지향 프로그래밍과 잘 맞고 JSON을 사용할 때 아주 유용합니다.
따라서 자바스크립트를 기반으로 하는 Node.js와 호환이 매우 좋기 때문에, Node.js에서 가장 많이 사용되는 데이터베이스다. 물론 MySQL 같은 관계형 데이터베이스 사용도 가능하다.
Mysql과 MongoDB 둘이 대표적으로 사용하는 용어도 다르다.
RDBMS에 익숙하다면 아래의 2개의 표를 통해 mongoDB에 대한 용어를 꼭 숙지해두자.


MongoDB에서는 질의문이 모두 JSON(BSON) 객체로 표현된다.
MongoDB의 데이터베이스에 접근하고 조정하는 구문은 자바스크립트 문법에 가까운 모습을 보인다.
터미널에서 MongoDB에 접속해 보자
접속 전에 MongoDB가 켜져있는지 확인해야 한다. brew services list 혹은 brew services로 확인해보자

꺼져있다면, Mac은 brew services start mongodb-community,
Ubuntu는 sudo systemctl start mongod를 입력하여 mongoDB를 실행할 수 있다.
MongoDB가 켜져있다면 mongo를 입력해 mongoDB에 접속하자

show databases로 database를 확인해 보자.

지금부터 MongoDB 조작을 쉽게 해주는 관리 도구인 MongoDB Compass를 이용하여 데이터를 생성해 보자
MongoDB Compass 는 MongoDB의 GUI이다.
use 데이터베이스명 을 통해 사용할 database를 지정해 준다.
이번에는 local를 사용해 볼 것이기때문에 use local을 입력해 준다.

show collections를 통해 local의 컬렉션(서류봉투)을 확인할 수 있다.

db.startup_log.find().pretty()를 통해 데이터베이스에 대한 로그를 확인할 수 있다.
이외에도 터미널에서 MongoDB 데이터를 다룰 수 있는 여러 명령어들이 있으니, 검색을 통하여 공부할 수 있다.
터미널에서 접속중인 mongoDB는 exit 를 입력하여 shell을 종료할 수 있다.

이번에는 설치한 MongoDB Compass를 통해 mongoDB를 확인해보자
앞서 말했듯이 MongoDB Compass 는 MongoDB의 GUI 이기 때문에 간편한 조작을 위해서는 컴패스가 꼭 필요하다.
URI부분에 mongodb://localhost:27017을 입력(기본 설정값)하여 데이터베이스에 접속해 준다.

접속해보면 터미널에서 확인한 내용과 동일한 데이터베이스들이 나오는 것을 볼 수 있다.

이것으로, MongoDB 와 그의 Compass 를 어떻게 사용해야할지에 대해 기본적인 것만 알아보았다.
마지막으로 터미널에서 Mac 사용자는 brew services stop mongodb-community,
Ubuntu 사용자는 sudo systemctl stop mongod를 입력하여 24시간 켜져있는 서비스를 종료시켜 준다.

MongoDB는 NoSQL 기반의 DB이다.
MongoDB Compass 는 MongoDB의 GUI이다.
터미널
brew services- 몽고DB의 상태를 확인한다.
brew services start mongodb-community- 몽고db를 켠다.
mongo- 몽고db가 켜져있다면 이 명령어로 접속한다.
show databases- 몽고 db의 현재 database 를 확인할 수 있다.
use 데이터베이스명- 내가 사용할 database에 접속한다.
db.컬레선명.find().pretty()- 현재 컬렉션에 대한 로그를 확인할 수 있다.
show collections- 현재 db의 collections(서류봉투)를 확인할 수 있다.
exit- 접속중인 db의 shell을 종료할 수 있다.
brew services stop mongodb-community- 해당 명령어로 몽고db를 완전히 끝낼 수 있다.