몽고디비사용자교육2일차 v0.5

25
0 목차 0 설치 및 구동 ----------------------------------------------------------------------------------------------------------------------- 0 1 로보몽고 설치 및 데이터 확인--------------------------------------------------------------------------------------------- 3 2 bgl?km + _bg] + ni]Zm? + k?fho? --------------------------------------------------------------------------------------------- 6 2-0 bgl?km -------------------------------------------------------------------------------------------------------------------- 7 2-1 _bg]+ _bg]Lg? -------------------------------------------------------------------------------------------------------- 8 2-2 ni]Zm?---------------------------------------------------------------------------------------------------------------- 00 2-3 k?fho? + ]khi ----------------------------------------------------------------------------------------------------- 02 3 고급 표현들 ---------------------------------------------------------------------------------------------------------------------- 03 3-0 비교하기 ------------------------------------------------------------------------------------------------------------- 03 3-0-0 대소 비교 하기 ' Nn?krbgA nlbgA $Am Zg] $em ( ------------------------------------------ 03 3-0-1 문자열 비교하기 ' Fg?jnZebmb?l hg PmkbgAl ( ------------------------------------------------ 03 3-1 검색 하기------------------------------------------------------------------------------------------------------------ 04 3-1-0 ebd?검색'정규식(+ 필드존재여부+ 자료형으로 검색 -------------------------------------- 04 3-1-1 LO 검색 ' RlbgA $hk ( ------------------------------------------------------------------------------ 05 3-1-2 ?KB 검색 ' RlbgA $Zg] ( ------------------------------------------------------------------------- 05 3-1-3 배열 검색 ' Nn?krbgA Fglb]? ?kkZrl (-------------------------------------------------------- 06 3-1-4 배열안의 요소로 검색 ' RlbgA $bg Zg] $Zee ( ---------------------------------------------- 06 3-1-5 하위 다큐먼트 검색 ' Nn?kb?l pbma Bhm KhmZmbhg ( ------------------------------------ 07 3-2 쿼리와 커서리턴 ' Nn?krbgA+ Anklhkl (----------------------------------------------------------------- 07 3-3 =hngm 해보기 ' AhngmbgA O?lneml (----------------------------------------------------------------------- 08 3-4 ni]Zm? 고급진 표현들----------------------------------------------------------------------------------------- 08 3-5 필드삭제 ' RlbgA ma? $ngl?m AhffZg] (------------------------------------------------------------- 1/ 3-6 배열 다루기 -------------------------------------------------------------------------------------------------------- 1/ 3-6-0 배열 요소 bg]?q ni]Zm? 하기 ' $l?m (-------------------------------------------------- 10 3-6-1 배열 요소에 넣기 ' $inla ( ' WX ← 넣기 ( --------------------------------------------- 10 3-6-2 배열 요소에서 빼기 ' $ihi (--------------------------------------------------------------------- 10 3-6-3 배열에 많이 넣기 ' $inla?ee ( ------------------------------------------------------------------ 10 3-6-4 특정 요소 빼기 ' $inee (---------------------------------------------------------------------------- 11 3-6-5 중복을 피하여 넣기 ' $Z]]QhP?m ( ------------------------------------------------------------ 11 3-6-6 없으면 bgl?km 있으면 ni]Zm? ' $nil?km ( --------------------------------------------------- 12 4 집계 ' ?AAk?AZmbhg ( --------------------------------------------------------------------------------------------------------- 12 5 모델링 ' fh]?ebgA ( ---------------------------------------------------------------------------------------------------------- 12 6 부록 ---------------------------------------------------------------------------------------------------------------------------------- 12 6-0 OB@JP 와 질의 비교 ------------------------------------------------------------------------------------------ 12

Transcript of 몽고디비사용자교육2일차 v0.5

Page 1: 몽고디비사용자교육2일차 v0.5

0����������� ������������������  

����������� ������������������  

목차#

0 설치����������� ������������������  및����������� ������������������  구동����������� ������������������  -----------------------------------------------------------------------------------------------------------------------����������� ������������������  0

1 로보몽고����������� ������������������  설치����������� ������������������  및����������� ������������������  데이터����������� ������������������  확인����������� ������������������  ---------------------------------------------------------------------------------------------����������� ������������������  3 2 bgl km����������� ������������������  +����������� ������������������  _bg]����������� ������������������  +����������� ������������������  ni]Zm ����������� ������������������  +����������� ������������������  k fho ����������� ������������������  ---------------------------------------------------------------------------------------------����������� ������������������  6

2-0 bgl km����������� ������������������  --------------------------------------------------------------------------------------------------------------------����������� ������������������  7 2-1 _bg]+����������� ������������������  _bg]Lg ����������� ������������������  --------------------------------------------------------------------------------------------------------����������� ������������������  8 2-2 ni]Zm ����������� ������������������  ----------------------------------------------------------------------------------------------------------------����������� ������������������  00 2-3 k fho ����������� ������������������  +����������� ������������������  ]khi����������� ������������������  -----------------------------------------------------------------------------------------------------����������� ������������������  02

3 고급����������� ������������������  표현들����������� ������������������  ----------------------------------------------------------------------------------------------------------------------����������� ������������������  03

3-0 비교하기����������� ������������������  -------------------------------------------------------------------------------------------------------------����������� ������������������  03

3-0-0 대소����������� ������������������  비교����������� ������������������  하기����������� ������������������   '����������� ������������������  Nn krbg ����������� ������������������  nlbg ����������� ������������������  $ m����������� ������������������  Zg]����������� ������������������  $em����������� ������������������  (����������� ������������������  ------------------------------------------����������� ������������������  03

3-0-1 문자열����������� ������������������  비교하기����������� ������������������   '����������� ������������������  Fg jnZebmb l����������� ������������������  hg����������� ������������������  Pmkbg l����������� ������������������  (����������� ������������������  ------------------------------------------------����������� ������������������  03

3-1 검색����������� ������������������  하기����������� ������������������  ------------------------------------------------------------------------------------------------------------����������� ������������������  04

3-1-0 ebd 검색'정규식(+����������� ������������������  필드존재여부+����������� ������������������  자료형으로����������� ������������������  검색����������� ������������������  --------------------------------------����������� ������������������  04

3-1-1 LO����������� ������������������  검색����������� ������������������   '����������� ������������������  Rlbg ����������� ������������������  $hk����������� ������������������  (����������� ������������������  ------------------------------------------------------------------------------����������� ������������������  05

3-1-2 ?KB����������� ������������������  검색����������� ������������������   '����������� ������������������  Rlbg ����������� ������������������  $Zg]����������� ������������������  (����������� ������������������  -------------------------------------------------------------------------����������� ������������������  05

3-1-3 배열����������� ������������������  검색����������� ������������������   ����������� ������������������   '����������� ������������������  Nn krbg ����������� ������������������  Fglb] ����������� ������������������  ?kkZrl����������� ������������������  (����������� ������������������  --------------------------------------------------------����������� ������������������  06

3-1-4 배열안의����������� ������������������  요소로����������� ������������������  검색����������� ������������������   '����������� ������������������  Rlbg ����������� ������������������  $bg����������� ������������������  Zg]����������� ������������������  $Zee����������� ������������������  (����������� ������������������  ----------------------------------------------����������� ������������������  06

3-1-5 하위����������� ������������������  다큐먼트����������� ������������������  검색����������� ������������������   '����������� ������������������  Nn kb l����������� ������������������  pbma����������� ������������������  Bhm����������� ������������������  KhmZmbhg����������� ������������������  (����������� ������������������  ------------------------------------����������� ������������������  07

3-2 쿼리와����������� ������������������  커서리턴����������� ������������������   '����������� ������������������  Nn krbg +����������� ������������������  Anklhkl����������� ������������������  (����������� ������������������  -----------------------------------------------------------------����������� ������������������  07

3-3 hngm����������� ������������������  해보기����������� ������������������   '����������� ������������������  Ahngmbg ����������� ������������������  O lneml����������� ������������������  (����������� ������������������  -----------------------------------------------------------------------����������� ������������������  08

3-4 ni]Zm ����������� ������������������  고급진����������� ������������������  표현들����������� ������������������  -----------------------------------------------------------------------------------------����������� ������������������  08

3-5 필드삭제����������� ������������������   '����������� ������������������  Rlbg ����������� ������������������  ma ����������� ������������������  $ngl m����������� ������������������  AhffZg]����������� ������������������  (����������� ������������������  -------------------------------------------------------------����������� ������������������  1/

3-6 배열����������� ������������������  다루기����������� ������������������  --------------------------------------------------------------------------------------------------------����������� ������������������  1/

3-6-0 배열����������� ������������������  요소����������� ������������������   bg] q����������� ������������������  로����������� ������������������   ni]Zm ����������� ������������������  하기����������� ������������������   '����������� ������������������  $l m����������� ������������������  (����������� ������������������  --------------------------------------------------����������� ������������������  10

3-6-1 배열����������� ������������������  요소에����������� ������������������  넣기����������� ������������������   '����������� ������������������  $inla����������� ������������������  (����������� ������������������   ����������� ������������������   '����������� ������������������   ����������� ������������������   WX����������� ������������������  ←����������� ������������������  넣기����������� ������������������   (����������� ������������������  ---------------------------------------------����������� ������������������  10

3-6-2 배열����������� ������������������  요소에서����������� ������������������  빼기����������� ������������������   '����������� ������������������  $ihi����������� ������������������  (����������� ������������������  ---------------------------------------------------------------------����������� ������������������  10

3-6-3 배열에����������� ������������������  많이����������� ������������������  넣기����������� ������������������   '����������� ������������������  $inla?ee����������� ������������������  (����������� ������������������  ------------------------------------------------------------------����������� ������������������  10

3-6-4 특정����������� ������������������  요소����������� ������������������  빼기����������� ������������������   '����������� ������������������  $inee����������� ������������������  (����������� ������������������  ----------------------------------------------------------------------------����������� ������������������  11

3-6-5 중복을����������� ������������������  피하여����������� ������������������  넣기����������� ������������������   '����������� ������������������  $Z]]QhP m����������� ������������������  (����������� ������������������  ------------------------------------------------------------����������� ������������������  11

3-6-6 없으면����������� ������������������   bgl km����������� ������������������  있으면����������� ������������������   ni]Zm ����������� ������������������  '����������� ������������������  $nil km����������� ������������������  (����������� ������������������  ---------------------------------------------------����������� ������������������  12

4 집계����������� ������������������   '����������� ������������������  ? k Zmbhg����������� ������������������  (����������� ������������������  ---------------------------------------------------------------------------------------------------------����������� ������������������  12

5 모델링����������� ������������������   '����������� ������������������  fh] ebg ����������� ������������������  (����������� ������������������  ----------------------------------------------------------------------------------------------------------����������� ������������������  12

6 부록����������� ������������������  ----------------------------------------------------------------------------------------------------------------------------------����������� ������������������  12

6-0 OB@JP����������� ������������������  와����������� ������������������  질의����������� ������������������  비교����������� ������������������  ------------------------------------------------------------------------------------------����������� ������������������  12 ����������� ������������������  

����������� ������������������  

Page 2: 몽고디비사용자교육2일차 v0.5

1����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 3: 몽고디비사용자교육2일차 v0.5

0����������� ������������������  

����������� ������������������  

본#자료는#개발#프로젝트#교육용이며#또다른 교육을 위한 재배포는 환영입니다. 하지만#출판 및#

영리목적의 재배포는 허락하지#않습니다.#감사합니다.

����������� ������������������  

1! 설치#및#구동#

몽고디비를����������� ������������������  설치하고����������� ������������������  구동한뒤����������� ������������������  데이터를����������� ������������������  임포트����������� ������������������  해보자-����������� ������������������  그리고����������� ������������������  간단한����������� ������������������  조회를����������� ������������������  해보자����������� ������������������   ����������� ������������������  

����������� ������������������  

윈도의����������� ������������������  경우+����������� ������������������  디비����������� ������������������  설치나����������� ������������������  구동시에����������� ������������������  중간����������� ������������������  경로에����������� ������������������  한글이 있으면����������� ������������������  오류가����������� ������������������  일어날수����������� ������������������  있으니����������� ������������������  폴더명은����������� ������������������  

전부����������� ������������������  영문명으로����������� ������������������  하자-����������� ������������������   ����������� ������������������  

#

몽고디비#설치#

#

ammil9..ppp-fhg h][-hk .]hpgehZ]l����������� ������������������  사이트에����������� ������������������  가서����������� ������������������  본인의����������� ������������������  컴퓨터����������� ������������������  버전에����������� ������������������  맞는����������� ������������������  화일을����������� ������������������  다운로

드����������� ������������������  받아����������� ������������������  설치����������� ������������������  한다-����������� ������������������   ����������� ������������������  

����������� ������������������  

그림# 1-1#설치화일#다운로드#화면#

����������� ������������������  

몽고디비#구동#

#

콘솔에서'윈도우는����������� ������������������   f](����������� ������������������  설치된����������� ������������������  폴더로����������� ������������������  이동한뒤����������� ������������������   [bg����������� ������������������  폴더에서����������� ������������������   fhg h]����������� ������������������  파일을����������� ������������������  확인한다-����������� ������������������  가능하

다면����������� ������������������  설치된����������� ������������������  디렉토리의����������� ������������������   [bg����������� ������������������  디렉토리를����������� ������������������  시스템의����������� ������������������   iZma����������� ������������������  로����������� ������������������  등록하자-����������� ������������������  구동하기����������� ������������������  전에����������� ������������������  데이터����������� ������������������  디렉

터리를����������� ������������������  미리����������� ������������������  만든다-����������� ������������������  일반적으로는����������� ������������������   x.]ZmZ.][y����������� ������������������  폴더로만든다-����������� ������������������  가장����������� ������������������  간단한����������� ������������������  구동����������� ������������������  명령은����������� ������������������  다음과����������� ������������������  같

다-����������� ������������������  다른����������� ������������������  경로로����������� ������������������  만들었다면����������� ������������������  아래����������� ������������������  콘솔명령어에서����������� ������������������   x.]ZmZ.][y를����������� ������������������  대신해서����������� ������������������  해당����������� ������������������  경로를����������� ������������������  입력����������� ������������������  하자-����������� ������������������  

����������� ������������������  

ppillip@MacBook:~$#mongod#--dbpath#/data/db#1/04,/6,11Q03902947-128*/8//����������� ������������������  F����������� ������������������  GLROK?I����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  chnkgZe����������� ������������������  ]bk;.]ZmZ.][.chnkgZe����������� ������������������  

1/04,/6,11Q03902947-128*/8//����������� ������������������  F����������� ������������������  GLROK?I����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  k ho k����������� ������������������  9����������� ������������������  gh����������� ������������������  chnkgZe����������� ������������������  _be l����������� ������������������  ik l gm+����������� ������������������  gh����������� ������������������  k ho kr����������� ������������������  g ] ]����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  GLROK?I����������� ������������������   ����������� ������������������   W]nkZ[bebmrX����������� ������������������  BnkZ[bebmr����������� ������������������  mak Z]����������� ������������������  lmZkm ]����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  Jhg hB@����������� ������������������  lmZkmbg ����������� ������������������  9����������� ������������������  ib];4184����������� ������������������  ihkm;16/06����������� ������������������  ][iZma;.]ZmZ.][����������� ������������������  53,[bm����������� ������������������  ahlm;JZ @hhd-eh Ze����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  GLROK?I����������� ������������������   ����������� ������������������   WchnkgZe����������� ������������������  pkbm kX����������� ������������������  GhnkgZe����������� ������������������  pkbm k����������� ������������������  mak Z]����������� ������������������  lmZkm ]����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������   ����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  ))����������� ������������������  T?OKFKE9����������� ������������������  lh_m����������� ������������������  kebfbml����������� ������������������  mhh����������� ������������������  ehp-����������� ������������������  Knf[ k����������� ������������������  h_����������� ������������������  _be l����������� ������������������  bl����������� ������������������  145+����������� ������������������  lahne]����������� ������������������  [ ����������� ������������������  Zm����������� ������������������  e Zlm����������� ������������������  0///����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  ][����������� ������������������  o klbhg����������� ������������������  o2-/-3����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������   bm����������� ������������������  o klbhg9����������� ������������������  /370 847]Z [18587//400 6364] 55875_Z8 ]4����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  [nbe]����������� ������������������  bg_h9����������� ������������������  BZkpbg����������� ������������������  f b,hlq0/7,00-[nbe]-0/ g- ����������� ������������������  01-4-/����������� ������������������  BZkpbg����������� ������������������   kg e����������� ������������������  S klbhg����������� ������������������  01-4-/9����������� ������������������  

Png����������� ������������������  P i����������� ������������������  18����������� ������������������  02922936����������� ������������������  MBQ����������� ������������������  1/02:����������� ������������������  khhm9qgn,1/4/-37-01v0.OCIC?PC U75 53����������� ������������������  q75 53����������� ������������������  @LLPQ IF@ SCOPFLK;0 38����������� ������������������  

Page 4: 몽고디비사용자교육2일차 v0.5

1����������� ������������������  

����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  Zeeh Zmhk9����������� ������������������  lrlm f����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  himbhgl9����������� ������������������  t����������� ������������������  lmhkZ 9����������� ������������������  t����������� ������������������  ][MZma9����������� ������������������  ".]ZmZ.]["����������� ������������������  u����������� ������������������  u����������� ������������������  

2015-07-22T14:13:58.261+0900#I#NETWORK# # [initandlisten]#waiting#for#connections#on#port#27017#

����������� ������������������   ����������� ������������������  

위와����������� ������������������  같이����������� ������������������  구동후����������� ������������������  콘솔에서����������� ������������������  제일����������� ������������������  아랫부분에����������� ������������������   “waiting# for# connections# on# port# 27017”#메세지가����������� ������������������  

보였다면����������� ������������������  일단성공이다!����������� ������������������  축하축하����������� ������������������   v����������� ������������������  !����������� ������������������   ����������� ������������������   ����������� ������������������  

#

데이터임포트#

#

fhg h][-hk ����������� ������������������  사이트의����������� ������������������  아래����������� ������������������  주소에서����������� ������������������  샘플����������� ������������������  데이터를����������� ������������������  내려����������� ������������������  받자-����������� ������������������  

https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/dataset.json 각자����������� ������������������   편한����������� ������������������   위치에����������� ������������������   저장����������� ������������������   하고����������� ������������������   콘솔에서����������� ������������������   다음과����������� ������������������   같이����������� ������������������   입력����������� ������������������   해보자-����������� ������������������   ,,_be ����������� ������������������   다음에는����������� ������������������   위에서����������� ������������������   저장한����������� ������������������  

clhg����������� ������������������  데이터의����������� ������������������  경로를����������� ������������������  넣어야����������� ������������������  한다-����������� ������������������  현재는����������� ������������������   xBhpgehZ]l.ikbf k,]ZmZl m-clhgy����������� ������������������  경로를����������� ������������������  넣었다-����������� ������������������   ����������� ������������������  

����������� ������������������  

ppillip@MacBook:~$#mongoimport#--db#test#--collection#restaurants#--drop#--file#Downloads/primer-dataset.json#1/04,/6,11Q03913916-3/3*/8//����������� ������������������   hgg m ]����������� ������������������  mh9����������� ������������������  eh Zeahlm����������� ������������������  

1/04,/6,11Q03913916-3/4*/8//����������� ������������������   ]khiibg 9����������� ������������������  m lm-k lmZnkZgml����������� ������������������  

2015-07-22T14:24:28.398+0900# imported#25359#documents#

#

위의����������� ������������������  명령어를����������� ������������������  조금����������� ������������������  살펴����������� ������������������  보면����������� ������������������   fhg hbfihkm����������� ������������������  라는����������� ������������������  프로그램을����������� ������������������  사용����������� ������������������  하였다-����������� ������������������   ����������� ������������������  

현재����������� ������������������  사용한����������� ������������������  컴퓨터'MacBook(는����������� ������������������  패스를����������� ������������������  설정����������� ������������������  하여서����������� ������������������  경로를����������� ������������������  주지����������� ������������������  않고����������� ������������������  사용����������� ������������������  할수����������� ������������������  있다-����������� ������������������   ����������� ������������������  

x,,][����������� ������������������  m lmy����������� ������������������  는����������� ������������������   m lm����������� ������������������  라는����������� ������������������  디비에����������� ������������������  넣겠다는����������� ������������������  의미이고����������� ������������������   ����������� ������������������  

x,, hee mbhg����������� ������������������  k lmZnkZgmly����������� ������������������  는����������� ������������������   k lmZnkZgml����������� ������������������  라는����������� ������������������  컬렉션에����������� ������������������   ����������� ������������������  

x,,]khi"����������� ������������������  옵션은����������� ������������������  기존����������� ������������������  컬렉션은����������� ������������������   ]khi����������� ������������������  하겠다는����������� ������������������  의미이다-����������� ������������������   ����������� ������������������  

x,,_be ����������� ������������������  BhpgehZ]l.ikbf k,]ZmZl m-clhgy����������� ������������������  의����������� ������������������   ,,_be ����������� ������������������  옵션뒤에는����������� ������������������  본인의����������� ������������������  화일����������� ������������������  위치를����������� ������������������  넣어주면����������� ������������������  된다-����������� ������������������   ����������� ������������������  

마지막에����������� ������������������   xbfihkm ]����������� ������������������  14248����������� ������������������  ]h nf gmly����������� ������������������  라고����������� ������������������  메세지가����������� ������������������  보였다면����������� ������������������  또다시����������� ������������������  성공v!����������� ������������������  축하축하v����������� ������������������  !����������� ������������������   ����������� ������������������  

#

첫번째#쿼리문장#

#

데이터도����������� ������������������  들어가����������� ������������������  있으니����������� ������������������  쿼리를����������� ������������������  날려서����������� ������������������  어떤����������� ������������������  데이터가����������� ������������������  들어����������� ������������������  있는지����������� ������������������  확인좀����������� ������������������  해보자-����������� ������������������  일단����������� ������������������  콘솔에서����������� ������������������  

확인을����������� ������������������  해보자-����������� ������������������  한타����������� ������������������  한타����������� ������������������  다음����������� ������������������  코드를����������� ������������������  쳐서����������� ������������������  들어가보자-����������� ������������������   ����������� ������������������  

����������� ������������������  

ppillip@MacBook:~$#mongo#

Jhg hB@����������� ������������������  la ee����������� ������������������  o klbhg9����������� ������������������  2-/-3����������� ������������������  

hgg mbg ����������� ������������������  mh9����������� ������������������  m lm����������� ������������������  

P ko k����������� ������������������  aZl����������� ������������������  lmZkmni����������� ������������������  pZkgbg l9����������� ������������������   ����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������   ����������� ������������������  

1/04,/6,11Q03902947-142*/8//����������� ������������������  F����������� ������������������  ALKQOLI����������� ������������������   ����������� ������������������   WbgbmZg]eblm gX����������� ������������������  ))����������� ������������������  T?OKFKE9����������� ������������������  lh_m����������� ������������������  kebfbml����������� ������������������  mhh����������� ������������������  ehp-����������� ������������������  Knf[ k����������� ������������������  h_����������� ������������������  

_be l����������� ������������������  bl����������� ������������������  145+����������� ������������������  lahne]����������� ������������������  [ ����������� ������������������  Zm����������� ������������������  e Zlm����������� ������������������  0///����������� ������������������  

����������� ������������������   ����������� ������������������  

����������� ������������������  

몇����������� ������������������  가지����������� ������������������   pZkgbg 이����������� ������������������  떴는데����������� ������������������   LP����������� ������������������  화일����������� ������������������  갯수에����������� ������������������  관련된����������� ������������������  경고이니����������� ������������������  일단����������� ������������������  가볍게����������� ������������������  무시하고����������� ������������������  하던일을����������� ������������������  하

Page 5: 몽고디비사용자교육2일차 v0.5

2����������� ������������������  

����������� ������������������  

는거다!����������� ������������������  'LP����������� ������������������  만든이를����������� ������������������  믿자����������� ������������������  !(����������� ������������������   ����������� ������������������  

그리고����������� ������������������   fhg h����������� ������������������  라고만����������� ������������������  입력해도����������� ������������������  되는이유는����������� ������������������   eh Zeahlm����������� ������������������  의����������� ������������������   16/06����������� ������������������  포트로����������� ������������������  구동되고����������� ������������������  그����������� ������������������  구동이����������� ������������������  기본

이기����������� ������������������  때문에����������� ������������������  생략해도����������� ������������������  가능하다-����������� ������������������  접속����������� ������������������  옵션은����������� ������������������   fhg h����������� ������������������  ,,a ei����������� ������������������  를����������� ������������������  입력����������� ������������������  해보면����������� ������������������  자세히����������� ������������������  나온다-����������� ������������������   ����������� ������������������  

����������� ������������������  

이제����������� ������������������  임포트����������� ������������������  했을때����������� ������������������  자동으로����������� ������������������  생성된����������� ������������������   m lm����������� ������������������  베이스로����������� ������������������  이동하면����������� ������������������  된다-����������� ������������������  이동명령은����������� ������������������  아래와����������� ������������������  같다-����������� ������������������  

����������� ������������������  

>#use#test#

lpbm a ]����������� ������������������  mh����������� ������������������  ][����������� ������������������  m lm����������� ������������������  

����������� ������������������  

좀전에����������� ������������������   bfihkm����������� ������������������  한����������� ������������������  컬렉션이����������� ������������������  있는지����������� ������������������  찾아����������� ������������������  보자-����������� ������������������   ����������� ������������������  

����������� ������������������  

>#show#collections# #

k lmZnkZgml����������� ������������������  

lrlm f-bg] q l����������� ������������������  

����������� ������������������   ����������� ������������������  

����������� ������������������  

정상적으로����������� ������������������  들어����������� ������������������  갔으니����������� ������������������  딱����������� ������������������  한개만����������� ������������������  조회����������� ������������������  해보자-����������� ������������������   ����������� ������������������  

����������� ������������������  

>#db.restaurants.findOne();#

t����������� ������������������  

����������� ������������������   " b]"����������� ������������������  9����������� ������������������  L[c mF]'"44Z_18/[/871532__07Z41Z["(+����������� ������������������  

����������� ������������������   "Z]]k ll"����������� ������������������  9����������� ������������������  t����������� ������������������  

����������� ������������������   ����������� ������������������   "[nbe]bg "����������� ������������������  9����������� ������������������  "11/5"+����������� ������������������  

����������� ������������������   ����������� ������������������   " hhk]"����������� ������������������  9����������� ������������������  W����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ,63-0266175+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   3/-5008461����������� ������������������  

����������� ������������������   ����������� ������������������   X+����������� ������������������  

����������� ������������������   ����������� ������������������   "lmk m"����������� ������������������  9����������� ������������������  "Sb mhkr����������� ������������������  @hne oZk]"+����������� ������������������  

����������� ������������������   ����������� ������������������   "sbi h] "����������� ������������������  9����������� ������������������  "0/203"����������� ������������������  

����������� ������������������   u+����������� ������������������  

����������� ������������������   "[hkhn a"����������� ������������������  9����������� ������������������  "PmZm g����������� ������������������  FleZg]"+����������� ������������������  

����������� ������������������   " nblbg "����������� ������������������  9����������� ������������������  "G pbla. hla k"+����������� ������������������  

����������� ������������������   " kZ] l"����������� ������������������  9����������� ������������������  W����������� ������������������  

����������� ������������������   ����������� ������������������   t����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "]Zm "����������� ������������������  9����������� ������������������  FPLBZm '"1/03,0/,/5Q//9//9//V"(+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   " kZ] "����������� ������������������  9����������� ������������������  "?"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "l hk "����������� ������������������  9����������� ������������������  8����������� ������������������  

����������� ������������������   ����������� ������������������   u+����������� ������������������  

����������� ������������������   ����������� ������������������   t����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "]Zm "����������� ������������������  9����������� ������������������  FPLBZm '"1/03,/4,1/Q//9//9//V"(+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   " kZ] "����������� ������������������  9����������� ������������������  "?"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "l hk "����������� ������������������  9����������� ������������������  01����������� ������������������  

����������� ������������������   ����������� ������������������   u+����������� ������������������  

����������� ������������������   ����������� ������������������   t����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "l hk "����������� ������������������  9����������� ������������������  01+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "]Zm "����������� ������������������  9����������� ������������������  FPLBZm '"1/02,/3,/3Q//9//9//V"(+����������� ������������������  

Page 6: 몽고디비사용자교육2일차 v0.5

3����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   " kZ] "����������� ������������������  9����������� ������������������  "?"����������� ������������������  

����������� ������������������   ����������� ������������������   u+����������� ������������������  

����������� ������������������   ����������� ������������������   t����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "]Zm "����������� ������������������  9����������� ������������������  FPLBZm '"1/01,/0,13Q//9//9//V"(+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   " kZ] "����������� ������������������  9����������� ������������������  "?"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   "l hk "����������� ������������������  9����������� ������������������  8����������� ������������������  

����������� ������������������   ����������� ������������������   u����������� ������������������  

����������� ������������������   X+����������� ������������������  

����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  " hla k����������� ������������������  FleZg]"+����������� ������������������  

����������� ������������������   "k lmZnkZgm b]"����������� ������������������  9����������� ������������������  "3/245331"����������� ������������������  

u����������� ������������������  

����������� ������������������   ����������� ������������������  

����������� ������������������  

그렇다-����������� ������������������   ][-k lmZnkZgml-_bg]Lg '(:����������� ������������������   우리가����������� ������������������   던진����������� ������������������   첫번째����������� ������������������   질의문이����������� ������������������  결과로����������� ������������������  돌아왔다!����������� ������������������   이제����������� ������������������   B@?����������� ������������������   가����������� ������������������  

될����������� ������������������  준비가����������� ������������������  되었다!����������� ������������������  

만약����������� ������������������  클레식한����������� ������������������  쉘이����������� ������������������  너무����������� ������������������  좋아서����������� ������������������   계속����������� ������������������  쉘에서만����������� ������������������   질의를����������� ������������������   하고����������� ������������������  싶다면����������� ������������������   '실제로����������� ������������������   그런����������� ������������������   사람����������� ������������������   많이����������� ������������������  봤

다(����������� ������������������  몇가지����������� ������������������  팁을����������� ������������������  드리리다-����������� ������������������  공짜로!����������� ������������������   ����������� ������������������  

1. 윗쪽����������� ������������������  화살표로����������� ������������������  지난����������� ������������������  명령����������� ������������������  조회����������� ������������������   ����������� ������������������  

2. 탭으로����������� ������������������  완성����������� ������������������  할수����������� ������������������  있음����������� ������������������   ����������� ������������������  

2-����������� ������������������  cZoZl kbim����������� ������������������  w����������� ������������������  간단한����������� ������������������   cl����������� ������������������  문법만����������� ������������������  알아도����������� ������������������  사용����������� ������������������  가능����������� ������������������   ����������� ������������������  

3-����������� ������������������  a ei����������� ������������������  활용����������� ������������������   'a ei����������� ������������������  d r(����������� ������������������  

5. 콘솔에서����������� ������������������  복잡����������� ������������������  하다면����������� ������������������   db.restaurants.find()-ik mmr'(����������� ������������������  함수를����������� ������������������  사용하면����������� ������������������  깔끔하게나옴����������� ������������������  

����������� ������������������  

2! 로보몽고#설치#및#데이터#확인#

쉘은����������� ������������������  아무래도����������� ������������������  익숙하지����������� ������������������  않고����������� ������������������  먼가����������� ������������������   ERF����������� ������������������  로����������� ������������������  되있는����������� ������������������  클라이언트����������� ������������������  툴이����������� ������������������  필요����������� ������������������  하다면����������� ������������������  단연����������� ������������������  로보몽고를����������� ������������������  

추천한다-����������� ������������������  아직까지는����������� ������������������  무료지만����������� ������������������  유료가����������� ������������������  되기전에����������� ������������������   ]hgZmbhg����������� ������������������  을����������� ������������������  하는����������� ������������������  것도����������� ������������������  추천한다-����������� ������������������   ����������� ������������������  

Page 7: 몽고디비사용자교육2일차 v0.5

4����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 2-1#로보몽고#다운로드#

����������� ������������������  

설치����������� ������������������  했으면����������� ������������������  접속����������� ������������������  해보자-����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 2-2#연결#설정#

����������� ������������������  

KZf ����������� ������������������  과����������� ������������������   ?]]k ll����������� ������������������  를����������� ������������������  채우고����������� ������������������   16/06로����������� ������������������  되어����������� ������������������  있으니����������� ������������������  그냥����������� ������������������  세이브만����������� ������������������  누르면����������� ������������������  된다-����������� ������������������  

����������� ������������������  

Page 8: 몽고디비사용자교육2일차 v0.5

5����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 2-3#연결#목록#

����������� ������������������  

연결목록에서����������� ������������������   Ahgg m����������� ������������������  만����������� ������������������  누르면����������� ������������������  접속이����������� ������������������  된다-����������� ������������������   ����������� ������������������  

그후����������� ������������������  컨넥션에서����������� ������������������  오른쪽����������� ������������������  마우스를����������� ������������������  누른뒤����������� ������������������   Li g����������� ������������������  Pa ee����������� ������������������  을����������� ������������������  클릭해보자-����������� ������������������  

����������� ������������������  

그림# 2-4#셀열기#

쿼리를����������� ������������������  날리고����������� ������������������  싶어도����������� ������������������  잠시만����������� ������������������  참고����������� ������������������  왼쪽����������� ������������������  창을����������� ������������������  보면����������� ������������������   m lm����������� ������������������  디비가����������� ������������������  생겨있고����������� ������������������  확장해보면����������� ������������������   Ahee mbhgl����������� ������������������  

가����������� ������������������  보인다-����������� ������������������  그아래에����������� ������������������  다음����������� ������������������  그림처럼����������� ������������������  우리가����������� ������������������   bfihkm����������� ������������������  한����������� ������������������  데이터가����������� ������������������  컬렉션'k lmZnkZgml(으로����������� ������������������  생성����������� ������������������  되

어����������� ������������������  있다-����������� ������������������  만세!����������� ������������������  

����������� ������������������  

Page 9: 몽고디비사용자교육2일차 v0.5

6����������� ������������������  

����������� ������������������  

����������� ������������������  

위에����������� ������������������  화면이����������� ������������������  보였다면����������� ������������������  이제����������� ������������������   8/%����������� ������������������  왔다-����������� ������������������  로보몽고에서����������� ������������������  첫번째����������� ������������������  질의는����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������   ][-k lmZnkZgml-_bg]'(:����������� ������������������  

����������� ������������������  

위의����������� ������������������  코드를����������� ������������������  후����������� ������������������  컨트롤����������� ������������������  엔터����������� ������������������  혹은����������� ������������������  좌측����������� ������������������  상단에����������� ������������������  초록색����������� ������������������  삼각형을����������� ������������������  누르면����������� ������������������  된다-����������� ������������������   ][-컬렉션명-_bg]'(����������� ������������������  

는����������� ������������������  몽고디비의����������� ������������������  컬렉션을����������� ������������������  조회하는����������� ������������������  가장����������� ������������������  기본적인����������� ������������������   Zib����������� ������������������  다-����������� ������������������  자세한����������� ������������������   Zib����������� ������������������  는����������� ������������������  추후에����������� ������������������  다시����������� ������������������  설명한다-����������� ������������������   ����������� ������������������  

조회����������� ������������������  결과중����������� ������������������  제일����������� ������������������  위에����������� ������������������  다큐먼트를����������� ������������������  모두다����������� ������������������  활짝����������� ������������������  펼쳐보면����������� ������������������  아래����������� ������������������  그림과����������� ������������������  같다-����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 2-5#find#결과#

����������� ������������������  

3! insert#,#find#,#update#,#remove#

몽고디비는����������� ������������������   PNI����������� ������������������  이����������� ������������������  없고����������� ������������������  프로그램����������� ������������������   ?MF����������� ������������������  로����������� ������������������  접근����������� ������������������  해야����������� ������������������  한다-����������� ������������������  몽고디비����������� ������������������   Pa ee����������� ������������������  또한����������� ������������������   cZoZl kbim����������� ������������������   Zib����������� ������������������  를����������� ������������������  

사용����������� ������������������  해야한다-����������� ������������������  Pa ee����������� ������������������  및����������� ������������������   Zib����������� ������������������  에서����������� ������������������  기존에����������� ������������������  사용하던����������� ������������������   PNI����������� ������������������  과����������� ������������������   Zib����������� ������������������  를����������� ������������������  비교����������� ������������������  해보면����������� ������������������  다음표와����������� ������������������  같다-����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������   fhg hB@����������� ������������������  la ee����������� ������������������   PNI����������� ������������������  

AOC?Q����������� ������������������   Fgl km����������� ������������������   Fgl km����������� ������������������  

OC?B����������� ������������������   Dbg]����������� ������������������   P e m����������� ������������������  

Page 10: 몽고디비사용자교육2일차 v0.5

7����������� ������������������  

����������� ������������������  

RMB?QC����������� ������������������   Ri]Zm ����������� ������������������   Ri]Zm ����������� ������������������  

BCICQC����������� ������������������   O fho ����������� ������������������   B e m ����������� ������������������  

#

그림# 3-1#SQL#과# mongodb#shell#비교#

����������� ������������������  

몽고디비 Pa ee����������� ������������������   이란(이하 쉘)����������� ������������������   0-����������� ������������������   설치����������� ������������������   및����������� ������������������   구동����������� ������������������   에서����������� ������������������   콘솔에서����������� ������������������   fhg h����������� ������������������   를����������� ������������������   실행시켰을����������� ������������������   때����������� ������������������   나오는����������� ������������������  

ARF����������� ������������������  환경으로����������� ������������������  몽고디비와����������� ������������������  대화����������� ������������������  할수����������� ������������������  있는����������� ������������������  상태를����������� ������������������  말한다-����������� ������������������  

����������� ������������������  

3.1! insert# #이제����������� ������������������   가장����������� ������������������   간단한����������� ������������������   kn]����������� ������������������   를����������� ������������������  테스트����������� ������������������   해보자-����������� ������������������   우선����������� ������������������   [hhd����������� ������������������   이란����������� ������������������   컬렉션에����������� ������������������   2개정도의����������� ������������������   데이터를����������� ������������������   bgl km����������� ������������������  

해보자-����������� ������������������  쉘에서해도����������� ������������������  좋고--����������� ������������������  로보몽고에서����������� ������������������  해도����������� ������������������  좋다-����������� ������������������  '설명은����������� ������������������  로보몽고를����������� ������������������  기준으로����������� ������������������  한다(����������� ������������������  

아래����������� ������������������  코드를����������� ������������������  입력����������� ������������������  하고����������� ������������������  로보몽고에서����������� ������������������  실행����������� ������������������  시켜보자-����������� ������������������  

����������� ������������������  

����������� ������������������  

/*1*/ ][-[hhd-bgl km't����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   name#9����������� ������������������  "Mongodb#in#action"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   price#9����������� ������������������  1////+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   company#9����������� ������������������  "jpub"#

u(:����������� ������������������  

����������� ������������������  

/*2*/����������� ������������������  ][-[hhd-bgl km't����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   name#9����������� ������������������  "미티어#코딩공작소"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   price#9����������� ������������������  2////+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   company#9����������� ������������������  길벗����������� ������������������  

u(:����������� ������������������  

����������� ������������������  

/*3*/����������� ������������������  ][-[hhd-bgl km't����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   name#9����������� ������������������  "몽고디비#코딩공작소"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   price#9����������� ������������������  1////+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   company#9����������� ������������������  t����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   name#9����������� ������������������  "길벗"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   loc#9����������� ������������������  "망원동"#

# # # # u+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   language#9����������� ������������������  "한글"#

u(:����������� ������������������  

����������� ������������������  

����������� ������������������  

훌륭하다-����������� ������������������  2개모두����������� ������������������  인서트����������� ������������������  됬다-����������� ������������������  아니라고=����������� ������������������   ����������� ������������������  

O _ k g Ckkhk����������� ������������������  9����������� ������������������  길벗����������� ������������������   bl����������� ������������������  ghm����������� ������������������  ] _bg ]=����������� ������������������  

Page 11: 몽고디비사용자교육2일차 v0.5

8����������� ������������������  

����������� ������������������  

����������� ������������������  

이라는����������� ������������������  에러를����������� ������������������  봤다면����������� ������������������  아마도����������� ������������������  두번째����������� ������������������   bgl km����������� ������������������  문장의����������� ������������������   x hfiZgr����������� ������������������  9����������� ������������������  길벗y����������� ������������������  이라는����������� ������������������  문장에서����������� ������������������   ����������� ������������������   ����������� ������������������  

����������� ������������������  

/*2*/����������� ������������������  ][-[hhd-bgl km't����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   name#9����������� ������������������  "미티어#코딩공작소"+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   price#9����������� ������������������  2////+����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   company#9����������� ������������������  길벗����������� ������������������   .)에러����������� ������������������  위치).����������� ������������������  

u(:����������� ������������������  

����������� ������������������  

인터프리터는����������� ������������������  길벗����������� ������������������  이라는����������� ������������������  것을����������� ������������������  변수로����������� ������������������  인식하고����������� ������������������  정의된����������� ������������������  적이����������� ������������������  없다고����������� ������������������  에러를����������� ������������������  뱉었다-����������� ������������������  길벗, y길벗y����������� ������������������  

이라고����������� ������������������  수정하고����������� ������������������  다시����������� ������������������   bgl km����������� ������������������  하자-����������� ������������������   ����������� ������������������  

����������� ������������������  

위에러를����������� ������������������   뱉은건����������� ������������������   자바스크립트����������� ������������������   인터프리터이다-����������� ������������������   몽고디비����������� ������������������   쉘은����������� ������������������   자바스크립트로����������� ������������������   되어있고����������� ������������������   정확히����������� ������������������  

말해서����������� ������������������  자바스크립트����������� ������������������   S7����������� ������������������  엔진을����������� ������������������  사용하고����������� ������������������  있다-����������� ������������������  우리가����������� ������������������  알고����������� ������������������  있는����������� ������������������  대부분의����������� ������������������  자바스크립트 코드는����������� ������������������  

쉘에서 동작한다-����������� ������������������  따라서 SQL 의 프로시져 처럼 JAVASCRIPT 를 사용하면 된다.

����������� ������������������  

3.2! find,#findOne#����������� ������������������  

위에서����������� ������������������  입력한����������� ������������������  데이터를����������� ������������������  검색����������� ������������������  하여����������� ������������������  보자-����������� ������������������   ����������� ������������������  

][-[hhd-_bg]'(:����������� ������������������  

질의����������� ������������������  결과는����������� ������������������  다음����������� ������������������  그림과����������� ������������������  같다-����������� ������������������   ����������� ������������������  

����������� ������������������  

그림# 3-2#find#결과#

Page 12: 몽고디비사용자교육2일차 v0.5

0/����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

frlje����������� ������������������  과����������� ������������������  같은����������� ������������������   OB@JP의����������� ������������������   PNI����������� ������������������  이라면����������� ������������������   ����������� ������������������  

frlje ����������� ������������������  l e m����������� ������������������  gZf +����������� ������������������  ikb +����������� ������������������   hfiZgr����������� ������������������  _khf����������� ������������������  [hhd����������� ������������������  

정도����������� ������������������  되겠다-����������� ������������������  '자세한����������� ������������������  비교는����������� ������������������  부록에서����������� ������������������  한다(����������� ������������������  

����������� ������������������  

이제����������� ������������������  간단한����������� ������������������  필드를����������� ������������������  이용한����������� ������������������  조회����������� ������������������  조건을����������� ������������������  지정하여����������� ������������������  쿼리를����������� ������������������  날려����������� ������������������  보자-����������� ������������������   ����������� ������������������  

����������� ������������������  

][-[hhd-_bg]'����������� ������������������  tname#9����������� ������������������  "미티어#코딩공작소"u(:����������� ������������������  

����������� ������������������  

결과는����������� ������������������  다음����������� ������������������  그림# 3-3#필드를#조회#조건으로#한#결과����������� ������������������  와����������� ������������������  같다-����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 3-3#필드를#조회#조건으로#한#결과#

����������� ������������������  

_bg]����������� ������������������  의����������� ������������������  첫번째����������� ������������������  입력����������� ������������������  파라메터는����������� ������������������   clhg����������� ������������������  타입의����������� ������������������  오브젝트를����������� ������������������  받는다-����������� ������������������  현재는����������� ������������������   gZf ����������� ������������������  이����������� ������������������   x미티어����������� ������������������  코딩공

작소y와����������� ������������������  일치하는����������� ������������������  다큐먼트들을����������� ������������������  찾아서����������� ������������������  리턴한다-����������� ������������������   ����������� ������������������  

����������� ������������������  

이번에는����������� ������������������  원하는����������� ������������������  필드만����������� ������������������  조회����������� ������������������  하여보자-����������� ������������������  대신����������� ������������������  검색����������� ������������������  조건은����������� ������������������   xtuy����������� ������������������  로����������� ������������������  전체를����������� ������������������  대상으로����������� ������������������  가져와����������� ������������������  보자-����������� ������������������   ����������� ������������������  

][-[hhd-_bg]'����������� ������������������  t����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  name#9����������� ������������������  0����������� ������������������  +price#9����������� ������������������  0u����������� ������������������  (:����������� ������������������  

����������� ������������������  

필드는����������� ������������������  생략될����������� ������������������  수����������� ������������������  있지만����������� ������������������  조회조건은����������� ������������������  생략����������� ������������������  되서는����������� ������������������  안된다-����������� ������������������  조회����������� ������������������  조건이����������� ������������������  없더라도����������� ������������������   xtuy����������� ������������������  라는����������� ������������������  빈����������� ������������������  오

브젝트����������� ������������������  형태를����������� ������������������  입력하여야����������� ������������������  한다-����������� ������������������   ����������� ������������������  

����������� ������������������  

이제����������� ������������������   _bg]Lg ����������� ������������������  도����������� ������������������  사용해����������� ������������������  보자-����������� ������������������  이번에는����������� ������������������  조회����������� ������������������  조건과����������� ������������������  원하는����������� ������������������  필드를����������� ������������������  한번에����������� ������������������  지정한다-����������� ������������������  

][-[hhd-_bg]Lg '����������� ������������������  tname#9����������� ������������������  "미티어#코딩공작소"u����������� ������������������  +����������� ������������������  t����������� ������������������  name#9����������� ������������������  0����������� ������������������  +price#9����������� ������������������  0u����������� ������������������  (:����������� ������������������  

Page 13: 몽고디비사용자교육2일차 v0.5

00����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 3-4#findOne#조회#결과#

����������� ������������������  

위����������� ������������������  그림과����������� ������������������  같다면����������� ������������������  정상적으로����������� ������������������  동작����������� ������������������  하였다-����������� ������������������   ����������� ������������������  

_bg]Lg ����������� ������������������  과����������� ������������������   _bg]����������� ������������������  의����������� ������������������  차이는����������� ������������������  무엇일까=����������� ������������������   ����������� ������������������  

첫째로����������� ������������������   _bg]����������� ������������������  는����������� ������������������  커서를����������� ������������������  리턴하고����������� ������������������   _bg]Lg ����������� ������������������  은����������� ������������������  오브젝트를����������� ������������������  리턴한다-����������� ������������������   ����������� ������������������  

두번째로는����������� ������������������  동작의����������� ������������������  차이이다-����������� ������������������   _bg]����������� ������������������  는����������� ������������������  전체����������� ������������������  데이터를����������� ������������������  조회����������� ������������������  하고����������� ������������������   _bg]Lg 은����������� ������������������  첫번째����������� ������������������  다큐먼트를����������� ������������������  만

나면����������� ������������������  리턴하고����������� ������������������  멈춘다-����������� ������������������  조회����������� ������������������  결과가����������� ������������������   0개인것을����������� ������������������  알고����������� ������������������  있는����������� ������������������  경우는����������� ������������������   _bg]Lg ����������� ������������������  을����������� ������������������  사용한다-����������� ������������������   ����������� ������������������   ����������� ������������������  

3.3! update# #이제����������� ������������������  특정����������� ������������������  필드를����������� ������������������  조회����������� ������������������  조건으로����������� ������������������  하여����������� ������������������  다큐먼트를����������� ������������������  업데이트����������� ������������������  해보자-����������� ������������������  목표는����������� ������������������  책의����������� ������������������  가격을����������� ������������������  올리는것

이다-����������� ������������������   ����������� ������������������  

����������� ������������������  

][-[hhd-ni]Zm 'tname#9����������� ������������������  "미티어#코딩공작소"u����������� ������������������  +����������� ������������������  tprice#9����������� ������������������  24///u����������� ������������������  (:����������� ������������������  

����������� ������������������  

업데이트후����������� ������������������  아래처럼����������� ������������������   0개가����������� ������������������  업데이트����������� ������������������  되었다는����������� ������������������  메세지가����������� ������������������  나왔다면����������� ������������������  정상적으로����������� ������������������  업데이트����������� ������������������  되었다-����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 3-5#update#

����������� ������������������  

Page 14: 몽고디비사용자교육2일차 v0.5

01����������� ������������������  

����������� ������������������  

][-[hhd-_bg]Lg 'tname#9����������� ������������������  "미티어#코딩공작소"u(:����������� ������������������  

����������� ������������������  

그리고����������� ������������������  가격이����������� ������������������  정상적으로����������� ������������������  업데이트����������� ������������������  되었는지����������� ������������������  조회����������� ������������������  하여����������� ������������������  보자-����������� ������������������  없다!����������� ������������������  날라����������� ������������������  갔나=����������� ������������������  전체를����������� ������������������  대상으로����������� ������������������  

조회����������� ������������������  해보자-����������� ������������������   ����������� ������������������  

����������� ������������������  

][-[hhd-_bg]'tu(:����������� ������������������  

����������� ������������������  

그림의����������� ������������������   가장����������� ������������������   아래쪽에����������� ������������������   보면����������� ������������������   데이터����������� ������������������   있다-����������� ������������������  눈치����������� ������������������  챗겠지만����������� ������������������   그냥����������� ������������������   ni]Zm ����������� ������������������   문을����������� ������������������   날리면����������� ������������������   이렇게����������� ������������������   된다-����������� ������������������  

우리가����������� ������������������  원하는����������� ������������������  필트만����������� ������������������  업데이트����������� ������������������  되는것이����������� ������������������  아니라����������� ������������������   ni]Zm ����������� ������������������  의����������� ������������������  두번째����������� ������������������  파라메터로����������� ������������������  문서가����������� ������������������   x대체y����������� ������������������  된

다-����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 3-6#update#결과# $set#사용전#

����������� ������������������  

이번에는����������� ������������������   $l m����������� ������������������  을����������� ������������������  이용하여����������� ������������������  다시한번����������� ������������������  시도해보자-����������� ������������������  이번에도����������� ������������������  목표는����������� ������������������  가격만����������� ������������������  수정����������� ������������������  하는것이다-����������� ������������������   ����������� ������������������  

����������� ������������������  

][-[hhd-ni]Zm 'tname#9����������� ������������������  "몽고디비#코딩공작소"u����������� ������������������  +����������� ������������������  t����������� ������������������  $l m����������� ������������������  9����������� ������������������  t����������� ������������������  price#9����������� ������������������  24///u����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

그리고����������� ������������������  바로����������� ������������������  조회����������� ������������������  해보자����������� ������������������  

����������� ������������������  

][-[hhd-_bg]Lg 'tname#9����������� ������������������  "몽고디비#코딩공작소"u(:����������� ������������������  

Page 15: 몽고디비사용자교육2일차 v0.5

02����������� ������������������  

����������� ������������������  

����������� ������������������  

그림# 3-7#$set#을#사용하여# update#한결과#

원하던대로����������� ������������������  가격이����������� ������������������  비싸게����������� ������������������  수정되었다-����������� ������������������  이제����������� ������������������   $l m����������� ������������������  을����������� ������������������  꼭����������� ������������������  기억해두자-����������� ������������������  

3.4! remove#,#drop#����������� ������������������  

삭제도����������� ������������������  예상처럼����������� ������������������  어렵지����������� ������������������  않다-����������� ������������������   k fho ����������� ������������������  메소드를����������� ������������������  이용하여����������� ������������������  삭제����������� ������������������  대상인����������� ������������������  조건을����������� ������������������   GPLK����������� ������������������  오브젝트����������� ������������������  형

태로����������� ������������������  넣어����������� ������������������  주면����������� ������������������  된다-����������� ������������������  

����������� ������������������  

][-i hie -k fho '����������� ������������������  t조건u����������� ������������������  (:����������� ������������������  

����������� ������������������  

책이름이����������� ������������������   x몽고디비����������� ������������������  코딩공작소y����������� ������������������  인����������� ������������������  책을����������� ������������������  삭제하기����������� ������������������  위하여����������� ������������������  다음과����������� ������������������  같이����������� ������������������  조건을����������� ������������������  넣어서����������� ������������������  삭제����������� ������������������  해보

자-����������� ������������������  

����������� ������������������  

][-i hie -k fho 'tname#9����������� ������������������  "몽고디비#코딩공작소"u(:����������� ������������������  

����������� ������������������  

만약����������� ������������������  전체����������� ������������������  데이터를����������� ������������������  삭제����������� ������������������  하고����������� ������������������  싶다면����������� ������������������   ����������� ������������������  

����������� ������������������  

][-i hie -k fho 'tu(:����������� ������������������  

����������� ������������������  

전체����������� ������������������  데이터����������� ������������������  삭제할����������� ������������������  우려가����������� ������������������  있으니����������� ������������������  조심조심-����������� ������������������  만약����������� ������������������  전체����������� ������������������  컬렉션을����������� ������������������  삭제����������� ������������������  하고����������� ������������������  싶다면����������� ������������������   ]khi����������� ������������������  을����������� ������������������  사용

하자-����������� ������������������  

����������� ������������������  

][-i hie -]khi'(:����������� ������������������  

����������� ������������������  

]khi����������� ������������������  은����������� ������������������  조건이����������� ������������������  필요����������� ������������������  없다-����������� ������������������  따라서����������� ������������������   k fho ����������� ������������������  와는����������� ������������������  달리����������� ������������������  데이터를����������� ������������������  조회하지����������� ������������������  않는다-����������� ������������������  용도에����������� ������������������  따라서����������� ������������������  

적절히����������� ������������������  이용하자-����������� ������������������  만약����������� ������������������  데이터가����������� ������������������  쌓이는����������� ������������������  속도보다����������� ������������������  제거����������� ������������������  하는����������� ������������������  속도가����������� ������������������  느려서����������� ������������������  문제라면����������� ������������������   ]khi����������� ������������������  을����������� ������������������  사

Page 16: 몽고디비사용자교육2일차 v0.5

03����������� ������������������  

����������� ������������������  

용하자-����������� ������������������  더����������� ������������������  좋은����������� ������������������  팁이����������� ������������������  있지만-����������� ������������������  비밀!����������� ������������������   ����������� ������������������  

����������� ������������������  

4! 고급#표현들#

4.1!비교하기#4.1.1! 대소 비교 하기 ( Querying using $gt and $lt )

����������� ������������������  

$ m����������� ������������������  는����������� ������������������   k Zm k����������� ������������������  maZg����������� ������������������  의����������� ������������������  약자임

$em����������� ������������������  9����������� ������������������  e ll����������� ������������������  maZg����������� ������������������  의����������� ������������������  약자임

$ m ����������� ������������������  9����������� ������������������   k Zm k����������� ������������������  maZg����������� ������������������  hk����������� ������������������   jnZe����������� ������������������  의����������� ������������������  약자임����������� ������������������  

$em ����������� ������������������  9����������� ������������������  e ll����������� ������������������  maZg����������� ������������������  hk����������� ������������������   jnZe����������� ������������������  의����������� ������������������  약자임����������� ������������������  

����������� ������������������  

실제����������� ������������������  표현은����������� ������������������  동등비교����������� ������������������   clhg����������� ������������������  oZen ����������� ������������������  에����������� ������������������   t����������� ������������������  $ m����������� ������������������  9����������� ������������������  4/����������� ������������������  u����������� ������������������  형태로����������� ������������������  넣어줌-����������� ������������������   ����������� ������������������  

����������� ������������������  

1.#(#score==50#)����������� ������������������  동등비교는����������� ������������������  

����������� ������������������  

����������� ������������������  

][-l hk -_bg]'����������� ������������������  {#score#:#50#}����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

2.#(#score#>#50#)����������� ������������������  대소비교는����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-l hk -_bg]'����������� ������������������  t����������� ������������������  l hk ����������� ������������������  9����������� ������������������  {#$gt:50#}����������� ������������������   ����������� ������������������   u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

3.#(#50#<#score#<#80#)����������� ������������������  또한����������� ������������������  점수가����������� ������������������   4/보다����������� ������������������  크고����������� ������������������   7/보다����������� ������������������  작은����������� ������������������   ]h nf gm����������� ������������������  를����������� ������������������  검색����������� ������������������  할����������� ������������������  경우����������� ������������������  

����������� ������������������  

����������� ������������������  

][-l hk -_bg]'����������� ������������������  t����������� ������������������  l hk ����������� ������������������  9����������� ������������������  {#$gt#:#50#,#$lt#:#80#}����������� ������������������   ����������� ������������������   u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

형태로����������� ������������������  사용함-����������� ������������������  

����������� ������������������  

4.1.2! 문자열 비교하기 ( Inequalities on Strings ) ����������� ������������������  

����������� ������������������   ­–����������� ������������������  “ ����������� ������������������   ����������� ������������������   ����������� ������������������   }����������� ������������������  } -����������� ������������������   ����������� ������������������   ����������� ������������������   xRQD,7����������� ������������������  “ ����������� ������������������   ����������� ������������������   ����������� ������������������   y����������� ������������������   ����������� ������������������   ~ }����������� ������������������   ����������� ������������������   ����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ” ����������� ������������������   ����������� ������������������  

Page 17: 몽고디비사용자교육2일차 v0.5

04����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

.) ����������� ������������������   ����������� ������������������   ).����������� ������������������  

����������� ������������������  

����������� ������������������  nl ����������� ������������������  m lm:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Smith"#+����������� ������������������  "age"907u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Jones"u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Alice"#+����������� ������������������  "age"917u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Bob"u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Charlie"u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Dave"#+����������� ������������������  "age"900u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Edg"u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"Fred"u(:����������� ������������������  

����������� ������������������  ][-i hie -bgl km't"name"9"박승현"u(:����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������   “ ����������� ������������������   xBy����������� ������������������   ” ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ” -����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  name#9����������� ������������������  t����������� ������������������  $gt#9����������� ������������������  "D"#u����������� ������������������   ����������� ������������������   u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "Pfbma"����������� ������������������   ����������� ������������������   u����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "Ghg l"����������� ������������������   ����������� ������������������   u����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "BZo "����������� ������������������   ����������� ������������������   u����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "C] "����������� ������������������   ����������� ������������������   ����������� ������������������   u����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "Dk ]"����������� ������������������   ����������� ������������������   ����������� ������������������   u����������� ������������������  

t����������� ������������������   ����������� ������������������   ����������� ������������������   "gZf "����������� ������������������  9����������� ������������������  "박승현"����������� ������������������  u����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

)����������� ������������������   }����������� ������������������   ����������� ������������������   kZg ����������� ������������������   }����������� ������������������  } -����������� ������������������   ����������� ������������������   -����������� ������������������  

����������� ������������������  

4.2!검색#하기#����������� ������������������  

4.2.1! like 검색(정규식), 필드존재여부, 자료형으로 검색 ����������� ������������������  

ebd ����������� ������������������  검색'정규식(+����������� ������������������  필드존재여부+����������� ������������������  자료형으로����������� ������������������  검색����������� ������������������   '����������� ������������������  Rlbg ����������� ������������������  $k q l+����������� ������������������  $ qblml+����������� ������������������  $mri ����������� ������������������  (����������� ������������������  

����������� ������������������  

$exists#9����������� ������������������  k][와는����������� ������������������  달라서����������� ������������������  문서별로����������� ������������������  존재하는����������� ������������������  필드가����������� ������������������  다를����������� ������������������  수����������� ������������������  있음-����������� ������������������  특정����������� ������������������  필드의����������� ������������������  존재����������� ������������������  여부를����������� ������������������  검색����������� ������������������  

����������� ������������������  

Page 18: 몽고디비사용자교육2일차 v0.5

05����������� ������������������  

����������� ������������������  

예(����������� ������������������  직업이라는����������� ������������������  필드가����������� ������������������  존재하는����������� ������������������   ]h nf gm����������� ������������������  검색����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  profession#9����������� ������������������  t����������� ������������������  $exists#9����������� ������������������  true#u����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

$type����������� ������������������  9����������� ������������������  oZen 의����������� ������������������   @PLK����������� ������������������  타입의����������� ������������������  일치여부를����������� ������������������  가지고����������� ������������������  검색����������� ������������������  

����������� ������������������   {����������� ������������������  @PLK-hk ����������� ������������������  에����������� ������������������  정의에����������� ������������������  의함����������� ������������������   ammi9..[lhgli -hk .#.li b_b Zmbhg����������� ������������������  참조����������� ������������������  

����������� ������������������  

예(����������� ������������������  이름이����������� ������������������  문자열일경우����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  name#:#{#$type#:#2#}����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������  

$regex����������� ������������������  9����������� ������������������  정규식����������� ������������������   ����������� ������������������  

����������� ������������������  

예(����������� ������������������  Pf으로����������� ������������������  시작하는����������� ������������������  문자열����������� ������������������  찾기����������� ������������������   '����������� ������������������  gZf ����������� ������������������  ebd ����������� ������������������   박승% (����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  name#:#{#$regex#:#"^박승"#}����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

예(����������� ������������������  ma����������� ������������������  로����������� ������������������  끝나는����������� ������������������  문자열����������� ������������������  찾기����������� ������������������   '����������� ������������������  gZf ����������� ������������������  ebd ����������� ������������������   %승현 (����������� ������������������  

����������� ������������������   ����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  name#:#{#$regex#:#"승현$"#}����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

4.2.2! OR 검색 ( Using $or )

����������� ������������������  

$hk����������� ������������������  를����������� ������������������  사용하여����������� ������������������   hk����������� ������������������  검색+����������� ������������������  d r����������� ������������������  값을����������� ������������������   $hk����������� ������������������  로����������� ������������������  주고����������� ������������������  조건들은����������� ������������������   clhg����������� ������������������  배열형태로표현����������� ������������������  

����������� ������������������  

����������� ������������������   패턴����������� ������������������   {����������� ������������������  $hk����������� ������������������  9����������� ������������������  W조건들--X����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'t����������� ������������������   ����������� ������������������  

$hk����������� ������������������  9����������� ������������������  W����������� ������������������   ����������� ������������������   t����������� ������������������  gZf ����������� ������������������  9����������� ������������������  t����������� ������������������  $k q����������� ������������������  9����������� ������������������  " $"����������� ������������������  u����������� ������������������  u����������� ������������������  +����������� ������������������   ����������� ������������������   t����������� ������������������  Z ����������� ������������������  9����������� ������������������  t����������� ������������������  $ qblml����������� ������������������  9����������� ������������������  mkn ����������� ������������������  u����������� ������������������  u����������� ������������������   ����������� ������������������   X����������� ������������������  

u����������� ������������������  (����������� ������������������  

����������� ������������������  

"! 쉘에서����������� ������������������  대칭되는����������� ������������������  괄호'브레이스(를����������� ������������������  색깔로����������� ������������������  표시����������� ������������������  해줌����������� ������������������  

"! 문장실행후����������� ������������������   x---y����������� ������������������  표시가����������� ������������������  나오면����������� ������������������  문법이����������� ������������������  틀린것이므로����������� ������������������  다시����������� ������������������  문장을����������� ������������������  만들것����������� ������������������  ����������� ������������������  

4.2.3! AND 검색 ( Using $and ) ����������� ������������������  

Page 19: 몽고디비사용자교육2일차 v0.5

06����������� ������������������  

����������� ������������������  

패턴# 1.#→#$and#연산자#사용# →# # $and#:#[#조건들...#]#

����������� ������������������  

A보다����������� ������������������  크고����������� ������������������  철자중에����������� ������������������   Z를����������� ������������������  포함하는����������� ������������������   ]h nf gm����������� ������������������  검색����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  $Zg]����������� ������������������  9����������� ������������������  W����������� ������������������  t����������� ������������������  gZf ����������� ������������������  9����������� ������������������  t����������� ������������������  $ m����������� ������������������  9����������� ������������������  "A"����������� ������������������  u����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  gZf ����������� ������������������  9����������� ������������������  t����������� ������������������  $k q����������� ������������������  9����������� ������������������  "Z"����������� ������������������  u����������� ������������������  u����������� ������������������   ����������� ������������������   X����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  

����������� ������������������  

����������� ������������������  

패턴# 2.#→#find#의#기본#문법# ����������� ������������������   '����������� ������������������  동일����������� ������������������  키값일����������� ������������������  경우����������� ������������������   oZen ����������� ������������������  들을����������� ������������������  묶음����������� ������������������   (����������� ������������������  

����������� ������������������  

A보다����������� ������������������  크고����������� ������������������  철자중에����������� ������������������   Z를����������� ������������������  포함하는����������� ������������������   ]h nf gm����������� ������������������  검색����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -_bg]'����������� ������������������  t����������� ������������������  name#:#{#$gt#:#"C"#,#$regex#:#"a"#}����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  

����������� ������������������  

z����������� ������������������  주의����������� ������������������   d r����������� ������������������  값이����������� ������������������  중복����������� ������������������  되면����������� ������������������   cZoZl kbim����������� ������������������  iZkl k����������� ������������������  에����������� ������������������  의해서����������� ������������������  오류가����������� ������������������  남-����������� ������������������  단+����������� ������������������  fhg h][����������� ������������������  에서는����������� ������������������  제일����������� ������������������  뒤

에����������� ������������������   td r9oZen u����������� ������������������  만����������� ������������������  정상적으로����������� ������������������  실행됨-����������� ������������������  

예(����������� ������������������  ][-l hk -_bg]'����������� ������������������  t����������� ������������������  l hk ����������� ������������������  9����������� ������������������  t����������� ������������������  $ m����������� ������������������  9����������� ������������������  4/����������� ������������������  u����������� ������������������  +����������� ������������������  l hk ����������� ������������������  9����������� ������������������  t����������� ������������������  $em����������� ������������������  9����������� ������������������  5/����������� ������������������  u����������� ������������������  u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

4.2.4! 배열 검색 ( Querying Inside Arrays ) ����������� ������������������   ����������� ������������������  

.)����������� ������������������  테스트����������� ������������������  데이터����������� ������������������  입력����������� ������������������   ).����������� ������������������  

����������� ������������������  nl ����������� ������������������  m lm:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km����������� ������������������  '����������� ������������������  (:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km't"name"9"박승현"#+favorites#9����������� ������������������  W"헬스"+"맥주"+"수영"+"서핑"X����������� ������������������  u(:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km't"name"9"김성환"#+favorites#9����������� ������������������  W"요리"+"음료수"+"보드"+"웨이크보드"X����������� ������������������  u(:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km't"name"9"배민식"#+favorites#9����������� ������������������  W"크로스핏"+"맥주"+"소주"+"자바"X����������� ������������������  u(:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km't"name"9"이제훈"#+favorites#9����������� ������������������  W"자전거"+"등산"X����������� ������������������  u(:����������� ������������������  

����������� ������������������  ][-Z hngm-bgl km't"name"9"김장현"#+favorites#9����������� ������������������  W"자전거"+"등산"+"여자"X����������� ������������������  u(:����������� ������������������  

����������� ������������������  

0-����������� ������������������  _Zohkbm l����������� ������������������  가����������� ������������������  배열����������� ������������������  일����������� ������������������  경우����������� ������������������   x맥주y����������� ������������������  라는����������� ������������������  문자열이����������� ������������������  존재����������� ������������������  할경우����������� ������������������  해당����������� ������������������   ]h nf gm����������� ������������������  를����������� ������������������  리턴함����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������  

����������� ������������������  ][-Z hngm-_bg]'tfavorites9"맥주"u(:����������� ������������������  

����������� ������������������  

1-����������� ������������������  배열안의����������� ������������������  요소를����������� ������������������  대상으로����������� ������������������   $ m����������� ������������������  +����������� ������������������  $em����������� ������������������  +����������� ������������������  리터럴검색����������� ������������������  또한����������� ������������������  가능함����������� ������������������  

4.2.5! 배열안의 요소로 검색 ( Using $in and $all ) ����������� ������������������   ����������� ������������������  

1.#$all#

����������� ������������������  

패턴����������� ������������������   9����������� ������������������   ����������� ������������������   _Zohkbm l����������� ������������������  9����������� ������������������  t����������� ������������������   ����������� ������������������   $Zee����������� ������������������  9����������� ������������������  W"자전거"+"등산"X����������� ������������������   ����������� ������������������   u����������� ������������������   ����������� ������������������  

Page 20: 몽고디비사용자교육2일차 v0.5

07����������� ������������������  

����������� ������������������  

����������� ������������������  

배열안에����������� ������������������  모든����������� ������������������  요소가����������� ������������������  존재����������� ������������������  해야함����������� ������������������   '다른거는����������� ������������������  더����������� ������������������  있어도됨(����������� ������������������  

����������� ������������������  

����������� ������������������  ][-Z hngm-_bg]'t����������� ������������������  favorites9t$all9W"자전거"+"등산"Xu����������� ������������������   ����������� ������������������   u(����������� ������������������  :����������� ������������������  

����������� ������������������  

2.#$in#:#lje����������� ������������������  의����������� ������������������   bg����������� ������������������  과����������� ������������������  비슷함����������� ������������������   #

����������� ������������������  

이름이����������� ������������������   W"박승현"+"김성환"X����������� ������������������  중에����������� ������������������  하나라도����������� ������������������  포함되는����������� ������������������   ]h nf gm����������� ������������������  조회����������� ������������������  

����������� ������������������  

����������� ������������������  ][-Z hngm-_bg]'tname#9����������� ������������������  t����������� ������������������  $in#9����������� ������������������  W"박승현"+"김성환"X����������� ������������������  u����������� ������������������  u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

취미가����������� ������������������   Wx자전거y+y맥주yX����������� ������������������  중����������� ������������������  하나를����������� ������������������  포함하는����������� ������������������  경우����������� ������������������  

����������� ������������������  

����������� ������������������  ][-Z hngm-_bg]'����������� ������������������  t����������� ������������������  favorites#9����������� ������������������  t����������� ������������������  $in#9����������� ������������������  W����������� ������������������  "자전거"#+����������� ������������������  "맥주"#X����������� ������������������  u����������� ������������������  u����������� ������������������  (-ik mmr'(����������� ������������������  :����������� ������������������  

����������� ������������������  

4.2.6! 하위 다큐먼트 검색 ( Queries with Dot Notation )

����������� ������������������  

����������� ������������������  

.)����������� ������������������  테스트����������� ������������������  데이터����������� ������������������  입력����������� ������������������   ).����������� ������������������  

����������� ������������������  

][-nl kl-bgl km'����������� ������������������  t����������� ������������������  

"gZf "����������� ������������������  9����������� ������������������  "kb aZk]"����������� ������������������  +����������� ������������������   ����������� ������������������  

" fZbe"����������� ������������������  9����������� ������������������  t����������� ������������������   ����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   phkd����������� ������������������  9����������� ������������������  "kb aZk]>0/ g- hf"+����������� ������������������  i klhgZe����������� ������������������  9����������� ������������������  "dk nm k> qZfie - hf"����������� ������������������  

u����������� ������������������   ����������� ������������������  

u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

사용자의����������� ������������������   fZbe����������� ������������������  중에����������� ������������������   xphkdy����������� ������������������  가����������� ������������������   xkb aZk]>0/ g- hfy����������� ������������������  인����������� ������������������  다큐먼트를����������� ������������������  검색����������� ������������������   ����������� ������������������  

����������� ������������������  

][-nl kl-_bg]'����������� ������������������  t����������� ������������������   fZbe����������� ������������������  9����������� ������������������  t����������� ������������������  phkd����������� ������������������  9����������� ������������������  "kb aZk]>0/ g- hf"����������� ������������������  u����������� ������������������  u����������� ������������������  (����������� ������������������  :����������� ������������������  .)����������� ������������������  '����������� ������������������  U����������� ������������������  (����������� ������������������  ).����������� ������������������  

][-nl kl-_bg]'����������� ������������������  t����������� ������������������  " fZbe-phkd"����������� ������������������  9����������� ������������������  "kb aZk]>0/ g- hf"����������� ������������������   ����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  :����������� ������������������  .)����������� ������������������  '����������� ������������������  L����������� ������������������  (����������� ������������������  ).����������� ������������������  

����������� ������������������  

_bg]����������� ������������������  의����������� ������������������  조건은����������� ������������������  동일����������� ������������������   h[c m����������� ������������������  를����������� ������������������  비교����������� ������������������  하는것이����������� ������������������  아니라����������� ������������������  조회����������� ������������������  조건을����������� ������������������   GPLK����������� ������������������  으로����������� ������������������  표현한것-����������� ������������������   ����������� ������������������  

����������� ������������������  

4.3!쿼리와#커서리턴# (#Querying,#Cursors#)#����������� ������������������   ����������� ������������������   ����������� ������������������  

몽고쉘에서����������� ������������������  쿼리����������� ������������������  결과를����������� ������������������  화면에����������� ������������������  보이게����������� ������������������  하기����������� ������������������   ����������� ������������������  

쿼리����������� ������������������  결과를����������� ������������������   '커서형(����������� ������������������  변수로����������� ������������������  받는다����������� ������������������   ����������� ������������������  

����������� ������������������  

Page 21: 몽고디비사용자교육2일차 v0.5

08����������� ������������������  

����������� ������������������  

사용법����������� ������������������  

����������� ������������������  

oZk����������� ������������������   nk����������� ������������������  ;����������� ������������������  ][-i hie -_bg]'(:����������� ������������������   ����������� ������������������  

gnee:����������� ������������������  

����������� ������������������  

nk-aZlK qm'(����������� ������������������  와����������� ������������������   nk-g qm'(����������� ������������������  변수를����������� ������������������  사용:����������� ������������������   ����������� ������������������  

nk-lhkm'����������� ������������������  t����������� ������������������  gZf ����������� ������������������  9����������� ������������������  ,0����������� ������������������  u����������� ������������������  (����������� ������������������  {����������� ������������������  이름으로����������� ������������������  역순����������� ������������������  정렬����������� ������������������  

nk-ebfbm'����������� ������������������  2����������� ������������������  (����������� ������������������  {����������� ������������������  커서에����������� ������������������   2개만����������� ������������������  넣기����������� ������������������  

nk-ldbi'����������� ������������������  1����������� ������������������  (����������� ������������������  {����������� ������������������  1개를����������� ������������������  스킵하기����������� ������������������   ����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������  

����������� ������������������  ][-i hie -_bg]'(-ebfbm'2(����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   {����������� ������������������  2개����������� ������������������  가져옴����������� ������������������  

����������� ������������������  ][-i hie -_bg]'(-ldbi'2(-ebfbm'1(����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������   {����������� ������������������  2개����������� ������������������  가져옴����������� ������������������  

����������� ������������������   ����������� ������������������  

ldbi����������� ������������������  은����������� ������������������  항상����������� ������������������   ebfbm����������� ������������������  보다����������� ������������������  앞서����������� ������������������  실행함����������� ������������������  

frlje����������� ������������������  9����������� ������������������  ebfbm����������� ������������������  2+1/����������� ������������������   ����������� ������������������  

][-i hie -_bg]'(-ldbi'2(-ebfbm'1/(����������� ������������������  

����������� ������������������  

4.4! count#해보기# (#Counting#Results#)#����������� ������������������  

예����������� ������������������   (����������� ������������������  l hk l����������� ������������������  컬렉션에서����������� ������������������   mri ����������� ������������������  이����������� ������������������   x llZry이고����������� ������������������   l hk ����������� ������������������  가����������� ������������������   8/보다����������� ������������������  큰����������� ������������������   ]h nf gm����������� ������������������  를����������� ������������������  검색����������� ������������������  

����������� ������������������  

����������� ������������������  ][-l hk l- hngm'ttype9"essay"+score9t$gt98/uu(����������� ������������������  :����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

4.5! update#고급#표현들#����������� ������������������  

ni]Zm ����������� ������������������  기본����������� ������������������   '����������� ������������������  Tahe lZe ����������� ������������������  Ri]Zmbg ����������� ������������������  h_����������� ������������������  Z����������� ������������������  Bh nf gm����������� ������������������  (����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -ni]Zm '����������� ������������������  t����������� ������������������  검색조건����������� ������������������   u����������� ������������������  +����������� ������������������  t����������� ������������������  바꿀����������� ������������������  내용����������� ������������������   u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

{����������� ������������������  검색����������� ������������������  조건에����������� ������������������  해당하는����������� ������������������  임의의����������� ������������������   0개의����������� ������������������  문서에����������� ������������������  대하여+����������� ������������������  t바꿀내용u����������� ������������������  으로����������� ������������������   k ieZ ����������� ������������������  한다-'주의(����������� ������������������  

����������� ������������������  

update#일반# ,#$set#,#$inc#사용# (#Using#the#$set#Command#)#

#

0-����������� ������������������  $l m����������� ������������������  을����������� ������������������  사용하여����������� ������������������  실질적으로����������� ������������������   ni]Zm ����������� ������������������  하고����������� ������������������  싶은����������� ������������������  필드만����������� ������������������  업데이트한다-����������� ������������������   ����������� ������������������  

Page 22: 몽고디비사용자교육2일차 v0.5

1/����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

][-i hie -ni]Zm '����������� ������������������  t����������� ������������������  검색조건����������� ������������������   u����������� ������������������  +����������� ������������������  t����������� ������������������  $l m����������� ������������������  9����������� ������������������  t����������� ������������������  바꿀����������� ������������������  내용����������� ������������������   u����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

1-����������� ������������������  $bg ����������� ������������������  를����������� ������������������  사용하여����������� ������������������  특정����������� ������������������  필드에����������� ������������������  해당하는����������� ������������������  숫자만큼����������� ������������������  증가����������� ������������������  시킨다-����������� ������������������  해당����������� ������������������  필드가����������� ������������������  없으면����������� ������������������  생성한다-����������� ������������������  

����������� ������������������  

����������� ������������������  

][-i hie -ni]Zm '����������� ������������������  t����������� ������������������  검색조건����������� ������������������   u����������� ������������������  +����������� ������������������  t����������� ������������������  $inc#9����������� ������������������  t����������� ������������������  age#9����������� ������������������  0����������� ������������������  u����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

{����������� ������������������  Z ����������� ������������������  ;����������� ������������������  Z ����������� ������������������  *����������� ������������������  0����������� ������������������  함����������� ������������������   ����������� ������������������  

주의����������� ������������������   0개만����������� ������������������   ni]Zm ����������� ������������������  된다-����������� ������������������   ����������� ������������������  

����������� ������������������  

업데이트#일반#문법#

����������� ������������������  

][-i hie -ni]Zm '����������� ������������������  t����������� ������������������  검색조건����������� ������������������   u����������� ������������������  +����������� ������������������  t����������� ������������������  $l m����������� ������������������  9����������� ������������������  t����������� ������������������  바꿀내용����������� ������������������   u����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  multi#9����������� ������������������  true#u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������  

아토믹����������� ������������������  트렌젝션+����������� ������������������  아이솔레이트는����������� ������������������  안됨����������� ������������������   '샤딩을����������� ������������������  생각해����������� ������������������  보자(����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

4.6!필드삭제# (#Using#the#$unset#Command#)#����������� ������������������   ����������� ������������������  

t����������� ������������������  $ngl m����������� ������������������  9����������� ������������������  t����������� ������������������  필드����������� ������������������   9����������� ������������������  0����������� ������������������  u����������� ������������������  u����������� ������������������  을����������� ������������������  이용해서����������� ������������������  필드����������� ������������������  삭제����������� ������������������   ����������� ������������������  

����������� ������������������   {����������� ������������������  운영����������� ������������������  중����������� ������������������  설계����������� ������������������  변경이����������� ������������������  있을����������� ������������������  경우����������� ������������������   +����������� ������������������  gnee����������� ������������������  이����������� ������������������  들어����������� ������������������  있는����������� ������������������  필드를����������� ������������������  삭제����������� ������������������  하고����������� ������������������  싶은����������� ������������������  경우����������� ������������������  

����������� ������������������  

4.7!배열#다루기# #����������� ������������������  

$inla+����������� ������������������  $ihi+����������� ������������������  $inee+����������� ������������������  $inla?ee+����������� ������������������  $inee?ee+����������� ������������������  $Z]]QhP m����������� ������������������   ����������� ������������������  등을����������� ������������������  이용하여����������� ������������������  배열을����������� ������������������  다루어����������� ������������������  보자-����������� ������������������  

����������� ������������������  

����������� ������������������  

.)����������� ������������������  m lm����������� ������������������  용����������� ������������������   bgl km����������� ������������������  ).����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-bgl km����������� ������������������  '����������� ������������������  t_id#9/����������� ������������������  +����������� ������������������  a#9����������� ������������������  W����������� ������������������  0+1+2+3����������� ������������������  X����������� ������������������  u����������� ������������������  (����������� ������������������  :����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 23: 몽고디비사용자교육2일차 v0.5

10����������� ������������������  

����������� ������������������  

4.7.1! 배열 요소 index 로 update 하기 ( $set ) ����������� ������������������   ����������� ������������������   ����������� ������������������  

Z����������� ������������������  배열의����������� ������������������   /번째����������� ������������������  요소����������� ������������������  업데이트����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm ����������� ������������������  '����������� ������������������   ����������� ������������������   t_id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  $set#9����������� ������������������  t"a.0"#9����������� ������������������  4����������� ������������������  u����������� ������������������   ����������� ������������������   u(:����������� ������������������  

����������� ������������������  

����������� ������������������  

4.7.2! 배열 요소에 넣기 ( $push ) ( [] ← 넣기 ) ����������� ������������������   ����������� ������������������   ����������� ������������������   ����������� ������������������  

Z����������� ������������������  배열에����������� ������������������   0//����������� ������������������  이란����������� ������������������  값을����������� ������������������  넣기����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������   ����������� ������������������   $push#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  0//����������� ������������������  u����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  :����������� ������������������  

4.7.3! 배열 요소에서 빼기 ( $pop ) ����������� ������������������   ����������� ������������������  

WX����������� ������������������  {����������� ������������������  빼기����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������   ����������� ������������������   $pop#9����������� ������������������  t����������� ������������������  a#9����������� ������������������   ����������� ������������������   0����������� ������������������  u����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������  

빼기����������� ������������������   ����������� ������������������  WX����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������   ����������� ������������������   $pop#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  ,0����������� ������������������  u����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

4.7.4! 배열에 많이 넣기 ( $pushAll ) ����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������   ����������� ������������������   $pushAll#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  W����������� ������������������  6����������� ������������������  +����������� ������������������  7����������� ������������������  +����������� ������������������  8����������� ������������������  X����������� ������������������  u����������� ������������������   ����������� ������������������   u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 24: 몽고디비사용자교육2일차 v0.5

11����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

4.7.5! 특정 요소 빼기 ( $pull ) ����������� ������������������  

����������� ������������������  

][-ZkkZrl-ni]Zm '����������� ������������������  t_id9/u+����������� ������������������  t$pull#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  6����������� ������������������  uu����������� ������������������  (����������� ������������������  :����������� ������������������   ����������� ������������������   .)����������� ������������������  전부����������� ������������������  다뺀다-����������� ������������������  ).����������� ������������������  

����������� ������������������  

����������� ������������������  

여기서����������� ������������������  테스트!!����������� ������������������  ZkkZr����������� ������������������  에����������� ������������������   clhg����������� ������������������  h[c m����������� ������������������  를����������� ������������������  넣고����������� ������������������  특정����������� ������������������   h[c m����������� ������������������  를����������� ������������������  뺄수����������� ������������������  잇을까=����������� ������������������  일단����������� ������������������  넣어보자-����������� ������������������  

����������� ������������������  

����������� ������������������  

.)����������� ������������������  테스트����������� ������������������  배열요소����������� ������������������  넣기����������� ������������������   ).����������� ������������������  

����������� ������������������  

][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  $pushAll#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  W����������� ������������������  tname9"ppillip"+age900u����������� ������������������  X����������� ������������������  u����������� ������������������  u����������� ������������������  (:����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������  

빼기����������� ������������������  

����������� ������������������  

][-ZkkZrl-ni]Zm '����������� ������������������  t_id9/u+����������� ������������������  t$pull#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  tname9"ppillip"u����������� ������������������  uu����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

.)����������� ������������������  Z����������� ������������������  요소중����������� ������������������   gZf ����������� ������������������  이����������� ������������������   iibeebi����������� ������������������  인����������� ������������������  요소����������� ������������������  삭제����������� ������������������   ).����������� ������������������  

����������� ������������������  

����������� ������������������  

{����������� ������������������  Z����������� ������������������  배열에서����������� ������������������   tgZf 9"iibeebi"+Z 900u����������� ������������������  이����������� ������������������  삭제����������� ������������������  된다-����������� ������������������  !!!!����������� ������������������  굿!!!����������� ������������������  ����������� ������������������  

����������� ������������������   ����������� ������������������  

4.7.6! 중복을 피하여 넣기 ( $addToSet )

����������� ������������������  

동일한����������� ������������������  값의����������� ������������������  요소가����������� ������������������  있으면����������� ������������������  넣지����������� ������������������  않고����������� ������������������  없을����������� ������������������  경우에만����������� ������������������   inla����������� ������������������  한다-����������� ������������������  

����������� ������������������   ����������� ������������������  

����������� ������������������  

����������� ������������������  ][-ZkkZrl-ni]Zm '����������� ������������������  t����������� ������������������  _id#9����������� ������������������  /����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  $addToSet#9����������� ������������������  t����������� ������������������  a#9����������� ������������������  4����������� ������������������  u����������� ������������������  u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������   ����������� ������������������   ����������� ������������������  

중복����������� ������������������  허용����������� ������������������  하지����������� ������������������  않는����������� ������������������  하위����������� ������������������   ]h nf gm����������� ������������������  목록����������� ������������������  만들기����������� ������������������   ����������� ������������������  

{����������� ������������������  0����������� ������������������  9����������� ������������������  g����������� ������������������  패턴에서����������� ������������������   0����������� ������������������  쪽에����������� ������������������  링크를����������� ������������������  가지고����������� ������������������  있는����������� ������������������  경우-����������� ������������������   ����������� ������������������  

{����������� ������������������  이����������� ������������������  글을����������� ������������������  읽는����������� ������������������  사람을����������� ������������������  구현����������� ������������������  할����������� ������������������  경우����������� ������������������   ����������� ������������������  

)����������� ������������������  이����������� ������������������  글을����������� ������������������  읽은����������� ������������������  사람을����������� ������������������  구현����������� ������������������  할경우는����������� ������������������   h[c m����������� ������������������  를����������� ������������������  사용하는����������� ������������������  것을����������� ������������������  고려����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 25: 몽고디비사용자교육2일차 v0.5

12����������� ������������������  

����������� ������������������  

����������� ������������������  

4.7.7! 없으면 insert 있으면 update ( $upsert ) ����������� ������������������   ����������� ������������������   ����������� ������������������  

실행����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -ni]Zm ����������� ������������������  '����������� ������������������  t����������� ������������������  name#9����������� ������������������  "ppillip"+����������� ������������������   ����������� ������������������   sex9"male"#u����������� ������������������  +����������� ������������������  t����������� ������������������  $set#9����������� ������������������  t����������� ������������������  age#9����������� ������������������  2/����������� ������������������  u����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  upsert#9����������� ������������������  true#u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������  ][-i hie -ni]Zm ����������� ������������������  '����������� ������������������  t����������� ������������������  name#9����������� ������������������  "ppillip2"+����������� ������������������   ����������� ������������������   sex9"male"#u����������� ������������������  +����������� ������������������  t����������� ������������������  $set#9����������� ������������������  t����������� ������������������  age#9����������� ������������������  2/����������� ������������������  u����������� ������������������  u����������� ������������������  +����������� ������������������  t����������� ������������������  upsert#9����������� ������������������  true#u����������� ������������������  (����������� ������������������  :����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

결과����������� ������������������  

����������� ������������������  

t����������� ������������������  " b]"����������� ������������������  9����������� ������������������  L[c mF]'"41087516/42]40Z45] ]82_1"(+����������� ������������������  "Z "����������� ������������������  9����������� ������������������  2/+����������� ������������������  "gZf "����������� ������������������  9����������� ������������������  "iibeebi"����������� ������������������  +����������� ������������������  "l q"����������� ������������������  9����������� ������������������  "fZe "����������� ������������������  u����������� ������������������  

����������� ������������������  

t����������� ������������������  " b]"����������� ������������������  9����������� ������������������  L[c mF]'"410876[8/42]40Z45] ]82_2"(+����������� ������������������  "Z "����������� ������������������  9����������� ������������������  2/+����������� ������������������  "gZf "����������� ������������������  9����������� ������������������  "iibeebi1"+����������� ������������������  "l q"����������� ������������������  9����������� ������������������  "fZe "����������� ������������������  u����������� ������������������  

����������� ������������������  

����������� ������������������  

조회����������� ������������������  조건을����������� ������������������  포함해서����������� ������������������  디비에����������� ������������������  들어감����������� ������������������  

����������� ������������������  

주의����������� ������������������   9����������� ������������������  검색����������� ������������������  조건에����������� ������������������   $ m����������� ������������������  +����������� ������������������  $em����������� ������������������  등����������� ������������������  고정����������� ������������������  값이����������� ������������������  아닌����������� ������������������  경우는����������� ������������������  해당����������� ������������������  조건이����������� ������������������  필드로����������� ������������������  들어����������� ������������������  가지����������� ������������������  않음����������� ������������������  

{����������� ������������������  검색����������� ������������������  조건이����������� ������������������  정확����������� ������������������  하지����������� ������������������  않을����������� ������������������  경우����������� ������������������  원하지����������� ������������������  않는����������� ������������������  값이����������� ������������������   FKPCOQ����������� ������������������  되므로����������� ������������������  조심����������� ������������������  해야����������� ������������������  함����������� ������������������   ����������� ������������������  

����������� ������������������   '����������� ������������������  RKFNRC����������� ������������������  필드들로����������� ������������������  검색����������� ������������������  하는����������� ������������������  것이����������� ������������������  좋음(����������� ������������������  

����������� ������������������  

����������� ������������������  

5! 집계# (#Aggregation#)#

����������� ������������������  

6! 모델링# (#modeling#)#

����������� ������������������  

����������� ������������������  

7! 부록# #

7.1! RDBMS#와#질의#비교#����������� ������������������  

����������� ������������������