Mongo DB 를 다루기위해서 기본적인 커맨드를 정리해본다.

혹시 설치를 못하신 분은 아래의 포스팅을 참고~!

https://freekim.tistory.com/12

 

[MongoDB] 몽고디비(NoSQL)의 개념과 설치 방법 (Window)

이글은 Mongo DB를 하나도 사용하지 않은 상태에서, 한번 사용해보기 위해 간단히 짚고 넘어간 개념들을 정리 한 입문 포스팅입니다. 이글은 정확한 Mongo DB의 스펙을 안내하는 글이 아닙니다. 혹시 정확한 스펙..

freekim.tistory.com

 

1. MongoDB 서버 실행

> mongod --dbpath <DB 경로>

 Command 창을 열어 위의 명령어를 실행해준다. 기본경로에 파일을 만든 사람은 그냥 mongod 만 쳐도 되고 path 를 따로 지정해주고 싶으면 뒤의 --dbpath 와 원하는 경로도 같이 넣어줘서 폴더를 지정할 수 있다.

 

2. MongoDB 쉘 실행

> mongo

서버를 실행해 둔채로 새로운 커맨드창을 여러 위의 커맨드를 실행한다.

아래와 같이 Shell Command 창으로 전환이 되는 것을 볼 수 있다.

 

3. 데이터베이스 생성

> use <DB 이름>

데이터 베이스를 사용하려면 관계형 db에서 database를 만들고 table 을 만들어 주는 것과 똑같이 database 를 먼저 만든 후 collection 을 만들어 주면된다. 

 use 명령어를 통해서 db를 만들어준다. 이 database 를 사용하겟다! 라는 느낌 git checkout 같은 느낌.

> show dbs

현재 생성되어 있는 db들을 보여준다. use database 를 하자마자 show dbs를 하면 안보이는데 collection 을 만들어 주면 그때부터 보이니 당황하지 마시길.

> db

현재의 사용하고 있는 db를 보여준다.

 

4. 컬렉션 생성 및 보기 

> db.createCollection("[COLLECTION_NAME]")

person collection을 예제로 생성한 뒤 show dbs 를 하면 databse db가 생성된 것을 볼 수 있다. 여기서 주의할 점은 db  는 만든 db명이 아니라 현재 db 를 가르키는 느낌으로 사용해주면된다. db를 바꾸고 싶으면 use 로 바꾸고 db.xxx해서 사용하면된다.

옵션도 있는데 필요할 때 찾아보시길..

 

> show collections

현재 생성된 collection들을 보여준다.

5. Document 

insert()

> db.person.insert({"nickname":"freekim", "email":"test@google.com"})

document 는 insert 명령어를 통해 json format 으로 insert 한다. 배열의 형태로 넣으려면 [] 를 사용한다. json format 과 똑같다. 아래서 보면 알 수 있듯이 잘 들어갔다. 

참고로 collection 을 안만들어도 insert 해주면 collection 이 생성되어 들어간다

find()

db.person.find()

find 를 이용하여 collection에 들어있는 값들을 볼 수 있다. 아주 잘 들어가 있다. 

find(query, projection) 메소드는 query 와  projection parameter 를 주어서 원하는 조건의 검색과, 보고싶은 결과 선택도 가능하다. 0은 보기, 1은 안보기 

query 는 필요할 때 인터넷에서 찾아보면 많다. 일단은 빠르게 CRUD 만 해보는 거니 Pass 하도록 하겠다.

 

 

6. 삭제 

Document 삭제

> db.person.remove({"nickname":"freekim"})

nickname freekim 의 document 가 잘 삭제 되었다.

Collection 삭제

> db.[collection 이름].drop()

database 삭제

> db.dropDatabase()

시작 하면서 만든 database db 가 잘 지워졌다.

 

마치며..

Mongodb 의 기본적인 동작들을 해보았다. 개발하면서 필요한 기능이나 쿼리들은 검색을 하면 쏟아질 것이니 일단 가볍게 개발을 시작하고, 필요할 때 찾아 써봐야겠다.

 

Update 와 find 에 대해서 자세한 명령어는 아래의 사이트에 아주 잘 정리되어 있어 굳이 두번 정리하지 않겠다.

https://poiemaweb.com/mongdb-basics-shell-crud

 

 

'MongoDB' 카테고리의 다른 글

[MongoDB] 몽고디비(NoSQL)의 개념과 설치 방법 (Window)  (1) 2020.03.29

 이글은 Mongo DB를 하나도 사용하지 않은 상태에서, 한번 사용해보기 위해 간단히 짚고 넘어간 개념들을 정리 한 입문 포스팅입니다.  이글은 정확한 Mongo DB의 스펙을 안내하는 글이 아닙니다. 혹시 정확한 스펙과 세부 기능을 알고 싶으신 분들은 다른 글을 보시길 바래요~

 

RDBMS vs NoSQL

 DB에는 크게 두가지 종류의 DB가 있다. RDBMS (관계형 데이터베이스) 가 있고 그리고 NoSQL 이 있다. 관계형 데이터베이스는 우리가 처음에 db공부를 했을 때 들었던 MySQL 이 대표적인 관계형 데이터베이스이다. RDBMS 와 NoSQL 의 내가 느낀 가장 큰 차이는 schema 가 있고 없고의 차이 같다. RDBMS 는 처음에 정의한 데이터 스키마에 새로운 필드를 넣어주고 싶으면 테이블을 다시 만들어줘야 되고 정해진 데이터 필드에 맞는 데이터만 넣어줄 수 있지만, NoSQL 은 스키마에 새로운 필드를 넣고싶으면 그냥 추가만 해주면된다.

 RDBMS 는 데이터 중복이 없이 관계를 통해서 데이터를 정의하므로 데이터 무결성 (data integrity)를 보장하여 부정확한 데이터가 있을 위험이 줄어드는 장점이 있지만 솔직히 개발자입장에서 처음에 완벽한 스펙이 기획이 된다면 좋겠지만 필요에 의해서 필드를 넣고 없애고 하는 경우가 빈번하기 때문에 나같은 초보 개발자입장에서는 NoSQL 을 쓰는게 편하다.. 고생을 해보면 마음이 바뀔지도... 동일한 데이터가 여러 컬렉션에 있으면 모두 update 를 해줘야 한다는 단점이 있지만 업데이트는 컴퓨터가하니 일단 기능을 확장하고 할때 스키마를 마음대로 수정할 수 있는 NoSQL 이 개발하기 편한게 편하다..

 

1. 개요

Mongo DB 는 NoSQL 중 하나로 Document Oriented 데이터 베이스이다.

Document Oriented라는 말은 쉽게 말해서 JSON 형식이나 XML 형식으로 DB에 데이터를 저장하는 것을 말한다. Mongo DB 는  key : value 로 이루어진 JSON 의 형태로 데이터를 저장한다.

 

Json 형식 예시

{
  "firstName": "free",
  "lastName": "kim",
  "email": "test@gmail.com"
  "study" : ["com", "game"]
}

 

RDBMS 의 한 row 를 MongoDB 에서는 Document 라고 표현을 하고 table 을 Collection 이라고 한다. 그리고 Collection 들의 집합은 Database 이다. 개념은 동일하고 용어는 좀 다르니 가볍게 생각하자.

 

 

2. MongoDB 장단점

 그래도 쓰는데 장단점은 알아야 하니 가볍게 정리해보고 넘어가겠다. 여러가지 장단점이 있겠지만 그냥 가장 눈에 띄는 장단점을 짚고 넘어가 본다. 사용을 해보면서 느끼는 장단점은 추가적으로 포스팅을 하겠다. 초보자이니 이정도만 알고 바로 시작! 아 그런데 트랜잭션 지원하려면 Replica SET 환경을 구성해줘야 한다는 포스팅이 있다.... 필요할때... 찾아서 해봐야지..

장점

 1. 속도가 빠르다.

 2. 스키마가 없다.

단점

 1. join 사용 불가

 2. 메모리 사용량 큼

 

3. Mongo DB 설치 (Window)

1. MongoDB Communi Server 다운로드 (https://www.mongodb.com/download-center/community)

맞는 os를 눌러서 다운받는다.

2. 윈도우 실행시 자동 으로 Service 가 실행되는게 싫다면 체크해제

3. GUI 툴이 필요 없다면 체크해제

4. 아무일도 벌어지지 않아도 당황하지 마시길.. ProgramFile 에 가보면 잘 설치되어 있는 몽고 DB를 볼수 있다. 설치라기보단 압축 해제해 놓은 수준인듯.

5. 실행을 위한 bin 폴더 경로 환경변수 Path에 추가.

4. MongoDB 실행

  mongod

cmd 에서 해당 커맨드를 입력해주면 아래와 같은 에러를 볼 수 있다. 몽고db가 참조하는 데이터 폴더를 안만들어 줫기 때문이다. 

path 를 지정해주고 mongodb 를 실행한다.

mongod --dbpath 경로

해당 path 에 뭔가가 어마어마 하게 깔린다. 이렇게 mongodb run time 시에 path 옵션을 주어 mongo db 를 실행하게 된다. 

 

보면 local host 의 27017 포트에서 몽고디비가 귀를 기울이면서 듣고 있는 것을 볼 수 있다. 웹브라우져에서 127.0.0.1:27017 쳐보면 아래와 같이 잘돌고 있는게 보인다

종료하고 싶으면 mongod 를 실행한 cmd 창에서 ctrl + c 를 이용하여 종료하면 몽고디비 서비스가 종료된다

 

아래의 명령어를 통해서 Shell 을 실행할 수 있다. 

Shell 을 시작 하기 전에는 mongo DB 서비스를 켜두는 것은 잊지말자.

mongo

 

'MongoDB' 카테고리의 다른 글

[MongoDB] 몽고DB 기본 명령어  (1) 2020.03.31

+ Recent posts