본문으로 바로가기

mongoDB 설치 (window 기반)

category DB, ORM/🍃 mongoDB (shell) 2020. 2. 27. 00:39

mongoDB는 NoSQL이다. 자유로운 데이터를 다루기에 좋습다. 스키마를 자유롭게 수정할 수 있기 때문에 어떤 형식으로 데이터가 들어올지 예상할 수 없을 때 좋다. MySQL과는 그 계층(?)이 다른데 정리해보자면 이렇습니다.

 

MySQL : DB(스키마) - 테이블 - 로우

MongoDB : DB - 컬렉션 - 도큐먼트

 

MySQL의 계층과 일치하는 것은 아니지만 MongoDB는 다음과 같은 구조를 가지고 있습니다.

DB는 캐비넷 컬렉션은 폴더, 도큐먼트는 폴더 내에 든 서류라고 생각합시다. 도큐먼트는 BSON 구조를 가집니다. JSON을 변형한 것입니다.

 

 

 

 

 

 (https://javacpro.tistory.com/64) 설치시 참고 블로그

 

 

 

Download Center: Community Server

Download MongoDB Community Server, the most popular non-relational database built to address the needs of modern applications.

www.mongodb.com

우선 위 홈페이지에 가서 Community Server를 다운로드 받고 (Compass도 자동 설치됩니다.) 환경 변수에도 추가해주자. MySQL에서 한 것과 같은 방법으로 추가하면 된다.

 

C:\Program Files\MongoDB\Server\[몽고 DB 버전]\bin

을 path에 추가해주면 된다.

 

 

환경변수까지 등록했다면 다음 명령어를 실행해보자

 

mongod //mongod 인스턴스 실행

mongod는 MongoDB의 주요 데몬 프로세스로 코어 데이터베이스 서버를 구동시킨다. 간단하게는 mongod는 데이터베이스에 접속할 수 있게 해준다고 보자.

 

 

실행하면 다음과 같은 사항들을 확인할 수 있다. pid 1556, dbpath는 C:\data\db\이고 mongoDB 버전은 4.2.2. 등등.

현재 NonExistentPath 오류가 뜨는데 몽고DB가 직접 만들어주지 않으므로 C:/data/db/를 직접 만들어줘야 한다. 만약 이 경로가 아닌 다른 경로를 사용하고 싶다면 mongod --dbpath [경로] 명령어를 통해 등록해주자.

 

 

mongod

이제 mongod를 입력하면 27017 포트에서 대기 중이라고 뜨는 것을 볼 수 있다.

 

로컬에서 해당 포트로 접근해보면 다음과 같은 문구를 확인할 수 있다.

 

 

그 이후에는 mongo 명령어를 통해 접속할 수 있다.

mongo //mognDB에 접속

 


 

mongoDB CLI 명령어를 알아보...려고 했는데 상당히 내용이 길어져서 다른 포스트로 분리하였습니다. 해당 명령어들을 잘 모르겠으면 MongoDB 공식 문서를 참고하도록 합시다.

 

mongo Shell Methods — MongoDB Manual

Note For details on specific methods, including syntax and examples, click on the specific method to go to its reference page.

docs.mongodb.com

 

mongoDB 명령어 모음

⚡ DB show dbs // DB의 목록을 출력합니다 db // 현재 사용 중인 DB use [DB 이름] // DB를 생성 혹은 사용. 데이터를 최소 하나 이상 넣어야 show dbs에 표시됨 db.dropDatabase() // 현재 사용중인 DB 삭제 ⚡..

darrengwon.tistory.com


mongo를 실행시킨 뒤 DB와 관련된 명령어만 사용할 수 있는 것은 아닙니다. 변수를 설정할 수도 있습니다.

 

 

이러한 방법을 통해 반복되는 사항을 쉽게 입력할 수도 있습니다.

freeboard_result = db.board.insertOne({name: "자유게시판"})
freeboard_id = freeboard_result.insertedId
db.article.insertOne([{board_id: freeboard_id, title: "whar are  you looking at?"}])

 


 

mongo에 접속후에는 관리자 계정을 생성해줍시다.

db에 아무것도 설정하지 않았음에도 존재하는 default db가 여러개 있는데 그 중 admin은 사용하는 유저에 관련된 정보를 담고 있습니다.

use admin // admin db 사용
db.createUser({user: "root", pwd: "비밀번호", roles: ['root']})

이제 mongo admin -u [이름] -p [비밀번호]를 통해 접속할 수 있습니다.

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체