저녁을 빠듯하게 먹고 강의를 듣기위해 왔지만 역시 체할 것 같습니다.

 

==========================  1  =========================

 

(19:00 ~ 19: 50)

 

어제의 수업이야기로 시작을 하시면서 관계형 DB의 경우에 Select하는 경우를 MongoDB의 경우와 비교하여 설명을 해 주셨습니다.

 

RDB의 order by의 경우는 sort method를 통해서 처리할 수 있다고 하셨습니다.

 

MongoDB

실행하는 법을 잊었습니다.

 

오늘은 꼭 기억하도록 하겠습니다.

 

먼저 서버용 Shell을 수행하는 명령어는... 아!

 

mongod 라는 명령어를 수행하면 됩니다. 하지만 그 경우에 mongoDB를 설치한 드라이버로 이동을 해야 합니다. 즉, 기본경로인 C: 드라이버가 아닌 경우는 다른 드라이버로 이동을 해서 위의 명령어를 수행해야 합니다.

 

그리고 또 사용할 CMD창에는

mongo 라는 명령어를 사용하시면 몽고디비를 사용할 수 있습니다.

 

1_1 projection에 대한 실습을 하였습니다.

 

1_2 정렬을 한 예, 어제 실습때 이름에 공백을 넣어서 보다 원활한 실습결과 확인에 문제가 있었습니다.

 

 

1_3 limit 관련 정보

 

 

고유 인덱스

 

 - 중복 제거하기 (dropDups 옵션)

임의로 삭제를 해서 가급적 주의하여 사용해야 합니다.

 

 

1_4 index

 

1_5 index 확인

 

1_6 explain()    

 

1_7 text index

 

1_8 여러 문자열 (단어단위로 조회)

 

여러 문자열을 ""안에 넣으면 원하는 조회결과를 얻지 못할 수 있습니다. 무슨 이야기인가 하면, 저는 자동차 커뮤니티에 대한 정보를 조회하고 싶어서 아래와 같은 명령을 수행하였습니다. 자동차 커뮤니티에 관한 정보만 (단 한건) 조회 될 것이라고 예상을 할 수 있지만, 그 결과는 아래 사진과 같습니다.

 

db.community.find({$text: {$search: "자동차 커뮤니티"}})

 

이와 같은 결과가 나온 이유는 해당 ""안의 '자동차'와 '커뮤니티'를 각각의 단어로 하여 두 단어를 이름에 포함하는 모든 커뮤니티가 조회 된 것입니다. 따라서 위의 "자동차 커뮤니티" 를 완전하게 포함하는 이름의 커뮤니티만을 조회하고 싶다면 아래와 같은 명령을 입력해야 합니다.

 

db.community.find({$text: {$search: "\"자동차 커뮤니티\""}})

조회에 정상적으로 한 건을 성공하였습니다.

 

==========================  2  =========================

 

( 20 : 03 ~ 20 : 53 )

 

다중 키 인덱스

 

공간정보 인덱스

 

집계 -> 간단하게 설명하고 넘어가기로 하였습니다.

 

또한 그 후에는 장애복구 방법에 대해 교육을 해 주신다고 하였습니다.

 

 

<강의자료 외의 내용>

 

복제 set

 

몽고디비는 단일 node로 운영하지 않습니다. master/slave 방식과 복제셋(ReplecaSet) 방식이 있다고 하셨습니다. 전자의 경우는 마스터가 죽을경우 복구를 할 방법이 없습니다. 후자의 경우에 마스터 서버가 죽을경우 여러 슬레이브중에 하나가 마스터로 자동으로 선택이 됩니다. 서버노드의 최소 개수는 3개입니다 (마스터, 슬레이브, 중재자 각 1개씩) 슬래이브를 2개 이상두는것이 보편적이라고 하셨습니다.

 

mongo --port 40000  -> local에서 접속을 하는 방법

 

mongo --port 40000

 

 

 

 

 

뭔가 창을 4개 이상을 띄워놓고 작업(실습)을 하다보니 햇갈리고 3개 창에 연 서버중에 하나가 정상적으로 동작을 하지 않아서 실습을 따라가지 못했습니다.

 

 

못따라 오셨다면 이번 실습에 관한 자료를 정리하여 주신다고 하셨지만 뭔가 확신을 할 수는 없을 것 같습니다.

 

==========================  3  =========================

 

( 21 : 05 ~ 21 : 53 )

 

계정에 대해서 수업을 해 볼까요? 라는 질문으로 수업을 시작하셨습니다.

 

몽고디비는 샤딩, 분산처리등을 사용하기가 편하고 접근 권한을 설정하면 앞의 기능들에 제약이 생겨서 접근권한을 설정하지 않고 사용하는 경우도 많다고 하셨습니다.

 

서버를 늘리려면....

os설치하고 db구성 하고 app설치하고.... 꽤나 하루정도는 잡고 해야된다고 하셨습니다.

 

므튼 요지는 접근권한을 두지 않고도 운영을 할 수 있다는 것이 핵심이라고 하셨습니다.

 

3_1 계정생성

3_2 계정 확인

3_3 namoouser 접속 (계정 이름이 오타입니다.... 애 먹었습니다...)

 

 

DB dump 뜨고 복구하는 것을 해 본다고 하셨습니다.

 

 

3_4 dump

 

3_5 db drop

 

3_6 복구

 

 

mongodb_lec.txt: 강사님 코드자료입니다.

 

몽고디비_실습_코드 160511.txt

+ Recent posts