mongoDB 설치 가이드 및 CRUD 예제
이미지 출처: https://webassets.mongodb.com/_com_assets/cms/MongoDB-Logo-5c3a7405a85675366beb3a5ec4c032348c390b3f142f5e6dddf1d78e2df5cb5c.png
오늘은 mongoDB를 설치하고 monogoDB client tool인 robomongo를 이용해서 CRUD 예제를 만들어보겠습니다. mongoDB의 경우 홈페이지에 설치 및 사용가이드가 아주 잘 되어 있지만 빠르게 기본기능을 체험해보고 싶은 분들을 위하여 제가 간단하게 정리해보도록 하겠습니다.
01. mongoDB 다운로드
아래 URL로 접속해서 파일을 다운로드 받습니다.
https://www.mongodb.com/download-center?jmp=nav#community
02. 설치
다운로드 받은 mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi 파일을 설치합니다.
a. Next 클릭 b. I accept the terms in the License Agreement 항목 체크 c. Next 클릭 d. Complete 클릭 e. Install 클릭
03. 기본 디렉토리 및 설정파일 생성
아래와 같이 데이터파일 폴더와 설정파일을 생성합니다. 이름은 바꾸셔도 됩니다.
D:\mongodb\data D:\mongodb\log D:\mongodb\mongod.cfg
04. mongoDB 설정파일 편집 및 적용
관련링크: https://docs.mongodb.com/v3.2/reference/configuration-options/ 전 두 가지 항목만 설정했습니다. 좀전에 생성한 'D:\mongodb\mongod.cfg' 파일을 열고 아래의 내용을 입력합니다. 참고로 설정파일은 yaml문법으로 작성해야 합니다. (공백문자는 tab 말고 space를 사용하세요)
1 2 3 4 5 6 7 8 | systemLog: destination: file path: D:/mongodb/log/mongod.log storage: dbPath: "D:/mongodb/data" directoryPerDB: true journal: enabled: true | cs |
05. mongoDB 실행하기
관련링크: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-windows/ 아래 순서로 실행합니다. a. 관리자 권한으로 커맨드창 실행 b. 커맨드창에서 아래 명령어 실행
"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --config D:\mongodb\mongod.cfg
06. mongo Shell 실행하기
관련링크: https://docs.mongodb.com/manual/mongo/ 아래 순서로 실행합니다. a. 관리자 권한으로 커맨드창 실행 b. 커맨드창에서 아래 명령어 실행
"C:\Program Files\MongoDB\Server\3.2\bin\mongo.exe
07. robomongo 다운로드
mongoDB 설치 기 기본으로 제공되는 mongo Shell보다 쉽게 쿼리를 다룰 수 있도록 도와주는 client tool을 받아보도록 하겠습니다. 아래 URL로 접속해서 파일을 다운로드 받습니다. https://robomongo.org/download 전 포터블 버전을 다운받았습니다.
08. robomongo 압축해제
전 아래 경로에 압축을 해제했습니다.
D:\mongodb\robomongo-0.9.0-windows-x86_64-0786489
09. robomongo 실행
a. Robomongo.exe 실행 b. Create 클릭 c. 정보입력 후 Save버튼 클릭 d. 접속정보 선택 후 Connect버튼 클릭 e. 접속완료
10. robomongo를 이용한 CRUD
관련링크: https://docs.mongodb.com/manual/crud/ mongoDB CRUD는 관련링크에 아주 자세히 나와 있습니다. 여기서는 그중 몇가지만 맛보기로 소개하도록 하겠습니다.
a. collection(table) drop
1 | db.users.drop() | cs |
b. row(document) insert
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | db.users.insertMany( [ { _id: 1, name: "sue", age: 19, type: 1, status: "P", favorites: { artist: "Picasso", food: "pizza" }, finished: [ 17, 3 ], badges: [ "blue", "black" ], points: [ { points: 85, bonus: 20 }, { points: 85, bonus: 10 } ] }, { _id: 2, name: "bob", age: 42, type: 1, status: "A", favorites: { artist: "Miro", food: "meringue" }, finished: [ 11, 25 ], badges: [ "green" ], points: [ { points: 85, bonus: 20 }, { points: 64, bonus: 12 } ] }, { _id: 3, name: "ahn", age: 22, type: 2, status: "A", favorites: { artist: "Cassatt", food: "cake" }, finished: [ 6 ], badges: [ "blue", "red" ], points: [ { points: 81, bonus: 8 }, { points: 55, bonus: 20 } ] }, { _id: 4, name: "xi", age: 34, type: 2, status: "D", favorites: { artist: "Chagall", food: "chocolate" }, finished: [ 5, 11 ], badges: [ "red", "black" ], points: [ { points: 53, bonus: 15 }, { points: 51, bonus: 15 } ] }, { _id: 5, name: "xyz", age: 23, type: 2, status: "D", favorites: { artist: "Noguchi", food: "nougat" }, finished: [ 14, 6 ], badges: [ "orange" ], points: [ { points: 71, bonus: 20 } ] }, { _id: 6, name: "abc", age: 43, type: 1, status: "A", favorites: { food: "pizza", artist: "Picasso" }, finished: [ 18, 12 ], badges: [ "black", "blue" ], points: [ { points: 78, bonus: 8 }, { points: 57, bonus: 7 } ] } ] ) | cs |
c. collection 내의 전체 document 조회
1 | db.users.find( {} ) | cs |
d. status 값이 P 또는 D인 document를 조회
1 | db.users.find( { status: { $in: [ "P", "D" ] } } ) | cs |
e. status 값이 A이면서 age 값 30보다 작은 document를 조회
1 | db.users.find( { status: "A", age: { $lt: 30 } } ) | cs |