티스토리 뷰

몽고DB 설치하기

다운로드받기

 

[STUDY] MongoDB 설치방법 (Community Server)

MongoDB를 처음 배우는 사람도 쉽게 설치할 수 있도록 작성한 MongoDB와 NoSQL에 대한 간단한 개념과 설치방법에 대한 내용으로 정리해보았다. 1. MongoDB란? → NoSQL의 한 종류로 데이터 NoSQL 중 가장 많

velog.io

Install MongoD as a Service에 대한 체크만 주의하기

- 윈도우가 실행될때마다 같이 실행되기 원하다면 체크, 아니라면 체크X

만약 체크했더라도 윈도우 > 서비스들어가서 '자동'을 '수동'으로 변경해주면 된다.

 

속성에서 시작유형을 바꾸면됨

 

윈도우 CMD 또는 터미널(powershell)로 몽고DB와 몽고DB shell 조작하기

친절하게 공식 가이드문서에서 MongoDB와 MongoDB Shell을 별도로 설치해야함을 알려준다.

https://www.mongodb.com/ko-kr/docs/manual/tutorial/install-mongodb-on-windows/#std-label-install-mdb-community-windows

 

환경변수 편집하는 과정은 아래 블로그들을 참고함

https://blog.naver.com/sudoku1/223050233311

http://solarisailab.com/archives/1605

 

편의를 위해 환경변수를 편집하여 터미널에서 mongoDB와 mongoDB Shell을 쓸수있도록 설정한다.

 

MongoDB의 설치경로: C:\Program Files\MongoDB\Server\7.0\bin

MongoDB Shell의 설치경로: C:\Program Files\MongoDB\Server\7.0\bin\mongosh-2.3.0-win32-x64\bin

  • MongoDB Shell은 별도로 설치하여 압축해제 후 원하는 경로에 넣어주면 됩니다. 저는 편의상 MongoDB 설치경로 밑에 넣었습니다.

시스템 환경 변수 편집

아래 시스템 변수에서 'Path'를 클릭한 후, '편집'버튼 클릭하면 팝업 창이 뜹니다

새로만들기를 통해서 앞서 파악한 설치경로를 2개다 추가한뒤 '확인' 버튼을 누릅니다.

 

설정이 적용됐다면 터미널에서 mongod와 mongosh를 입력하면 output이 나와야 한다.

만약 아무런 반응이 없다면 재부팅한 뒤 다시 시도해보면 알 수 있다.

 

mongod 입력 (앞에 pswh은 무시하세요)
mongosh (앞에 pswh은 무시하세요)

 

터미널에서 mongoDB 실행하기

 

터미널로 실행하려면 data/db라는 폴더경로를 만들어주어야한다. 

사실 폴더경로는 설정하니 나름이지만, 기본경로가 'C:\data\db'라고 해서 해당 위치에 폴더를 만들었다.

또는 애초에 'C:\Program Files\MongoDB\Server\7.0\data' 폴더가 존재하므로 여길 사용하면 된다.

이상한 점은 내 예상으로 mongod하면 ''C:\Program Files\MongoDB\Server\7.0\data" 이경로가 열릴거라 생각했지만,,안됐음. (터미널은 dbpath를 꼭 입력해줘야하는 걸까..?)

만약 터미널이 아니라 mongod.exe를 실행하여 'C:\Program Files\MongoDB\Server\7.0\data'여기가 초기 경로이니 착각하지 않기!

 

mongod --dbpath="c:\data\db"

 

환경변수 설정이 잘되었다면 위 코드를 터미널에 입력하면 MongoDB가 실행된다.

실행은 localhost:27017을 들어가면 확인할 수 있다.

MongoDB를 실행하는 기본 세팅 완료!

이후는 데이터 삽입, 쿼리, 수정, 제거의 방법과 7.0 설치 시 같이 제공되는 GUI인 compass의 사용법도 알아볼 예정이다.

MongoDB에 대한 간략한 설명

  • 비정형 데이터를 다룰 수 있음
  • 특정 스키마를 지정하지 않아도 저장가능
  • 문서: RDB의 행이 문서와 동치되는 개념이지만 더 넓은 범주의 데이터를 조작함
  • 콜렉션:  문서의 모음으로 RDB의 테이블과 동치될 수 있음. 별도의 스키마가 없음에도 콜렉션을 구분하는 이유는 인덱스 생성에 형량을 주고, 쿼리의 효율성을 위함
    • 콜렉션은 이름으로 식별됨. 빈문자열이나 null문자는 사용할 수 없음
    • 서브콜렉션을 사용할 수 있는데, blog.posts, blog.author와 같이 '.'을 사용해서 보통 구분하지만..실제로 DB에서는 blog와 posts가 전혀 관계없음. 네이밍의 규칙일 뿐임. 심지어 blog가 없어도됨
  • 데이터베이스: 콜렉션을 그룹지어 놓는 단위. 단일 인스턴스(서버?)는 여러 데이터베이스를 호스팅할 수 있
    • 데이터베이스도 이름으로 식별됨. 주의할 점은 실제 데이터베이스 이름이 파일시스템 상에서 파일이 된다는 것 => Q. 파일데이터가 만들어지는 건가??
    • admin, local, config는 이미 예약된 이름이므로 사용할 수 없음
  • 대표적인 데이터 형식: null, boolean, 숫자, 문자열, 날짜, 정규표현식, 배열, 내장문서, 객체ID
    • 내장문서의 단점: RDB의 경우, join을 하면 한 테이블에서 데이터를 수정하면 모두 반영됨. 반면, 몽고DB는 개별 문서의 데이터를 일일이 바꿔주어야함 --> 2014년 버전의 설명이라 현재도 그런지 찾아봐야함
  • 모든 문서는 _id라는 키를 가져야함. 콜렉션 단위로 _id는 고유해야함. ObjectID 클래스로 만들어짐
    • _id를 명시하지 않으면 입력된 문서에 자동으로 추가됨. --> 하지만 일반적으로 클라이언트쪽에서 _id를 생성하는것이 관리에는 용이함

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함