[환경]
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
계속 실행되고 있어야 몽고 데이터베이스에 접근이 가능하다.
데이터 삽입하기
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()로 확인할 수 있었다.
'데이터베이스 > MongoDB' 카테고리의 다른 글
[mongoose] express + mongoDB 애플리케이션에서 연결/저장/읽기 (0) | 2021.06.09 |
---|
댓글