본문 바로가기
데이터베이스/MongoDB

[MongoDB] Window10에서 실행하기와 데이터 삽입하기

by devebucks 2019. 8. 15.
728x90

[환경]

Window10

MongoDB 4.0

몽고 데이터베이스 설치 위치 : C:\Program Files\MongoDB\Server\4.0\bin

 

시작하며..

스터디를 진행하면서 Node.js와 Vue.js 그리고 Mongodb를 사용하고 있습니다. 처음 배우는 언어와 데이터베이스여서 헷갈리는 개념과 알 수 없는 Nosql의 영역때문에 아무것도 못만들고 있습니다. 하나하나 살펴보고자 이번 글을 만들었습니다. MongoDB는 이미 안정화를 이룬 RDBMS와 성능과 장단점에 대해 많은 비교가 이루어지고 있습니다. 저는 처음에 MongoDB를 접했을 때 RDBMS와의 차이가 뭔지 알기 위해서 좋은 점이 뭔지 궁금해서 많이 알아보았습니다. 하지만, 결론적으로 도달한 생각은 MongoDB를 이용해서 극한의 성능을 끌어올리는 작업을 할 것이 아니라면,  RDBMS의 성능과 비교하지 말고, 트랜젝션을 고려하지 말고, 오로지 MongoDB를 사용해서 application을 만들어야 겠다는 생각이었습니다. 

 

mongodb도 나름대로 특징이 있습니다. 어플리케이션에서는 한가지의 데이터베이스만 쓰는 것이 아니라 각 용도에 맞게 여러 디비를 사용합니다.  그 중에 사용될 수 있는 것이 MongoDB가 될 수 도 있구요. 이 점을 염두에 두시고 MongoDB에 입문하시면 좋을 것 같습니다.

 

1. 환경변수 설정 

컴퓨터 > 속성 > 고급 시스템 설정 > 고급 탭 > 환경변수 > 시스템 변수의 'Path'를 편집.

값에서 가장 마지막에  ;C:\Program Files\MongoDB\Server\4.0\bin; 를 붙이고 저장. cmd가 켜져있는 상태라면 다시 cmd를 재시작.

 

2. 몽고 데이터베이스 파일 생성 

C:\Users\USER\mongodb\local

위의 경로와 같이 윈도우 사용자 폴더 밑에 mongodb/local 폴더를 생성한다.

3. 몽고 데이터베이스 실행하기

cmd에서 다음을 실행

 > mongod --dbpath /C:\Users\USER\mongodb\local 

[오류발생]

exception in initAndListen: NonExistentPath: Data directory /C:\Users\USER\mongodb\local not found., terminating 예외가 발생한다. 

[오류 원인]

명령어 실행에서 mongod --dbpath '/' 슬레쉬 /가 있어서 경로가 제대로 안잡힌거다. 뺴고 실행하면 된다.

오류 페이지

 

 > mongod --dbpath C:\Users\USER\mongodb\local 

정상 실행 중인 화면

계속 실행되고 있어야 몽고 데이터베이스에 접근이 가능하다.

 

C:\Users\USER\mongodb\local 파일에 다음과 같은 파일들이 자동으로 생성됨.

 

 

데이터 삽입하기

cmd 창을 새로 열고

> mongo.exe를 실행한다.

 

몽고 데이터베이스 쉘 창이 등장한다.

우리의 경우 mongodb/local로 데이터베이스를 생성하였으므로.. use local 을 실행한다.

 > use local 

db를 누르면 사용 중인 데이터베이스가 출력된다. use local을 명령하면, 위의 그림처럼 바라보는 데이터베이스가 local로 변경된다.

 

local db에서 users 컬렉션을 만들고(있으면 그냥 삽입만..) 안에 JSON형식의 데이터를 삽입한다.

 > db.users.insert({id: '쿠쿠다스', pw : 1234}) 

 > db.users.insert({id:'마린', pw : 1234, date: new Date()}) 

테이블 형식이 정해져 있지 않으므로 NoSQL에서 RDBMS의 테이블 개념인 하나의 컬렉션에서 다음과 같이 다른 형식의 데이터를 가져도 자유롭게 삽입이 가능하다.

local db에 연결해서 users 컬렉션에 모든 데이터를 출력한다.

 > db.users.find().pretty() 

 

 

데이터 삭제

 > db.users.remove({id : /쿠쿠/}) 

/쿠쿠/는 정규표현식(regular Expression)을 사용해서 쿠쿠가 들어간 id를 찾는 조건을 표현한 것이다.

다음 그림을 보면 쿠쿠다스를 id로 가지는 데이터가 제거된 것을 db.users.find().pretty()로 확인할 수 있었다.

728x90

댓글