본문 바로가기
SEMINAR/몽고DB

MONGODB - Document조회

by 스꼬맹이브로 2020. 4. 26.
728x90
반응형
SMALL

◎ find() - document를 조회하는 메소드

find함수의 기본 형식

  • 반환 값은 cursor.
  • criteria에 해당하는 document들을 선택하여 cursor로 반환함.
  • query 요청의 결과값을 가리키는 pointer.
  • cursor객체를 통해 데이터의 수를 limit(제한)하거나 데이터를 sort(정렬)함.

  ※cursor란?
   쿼리의 결과 집합에 대한 포인터. 라고 생각하면 될듯!
   쉽게 말하자면 메모리 저장주소들의 값의 집합..정도,.. 되려나..

 

 - find()함수

 - pretty() 함수를 같이 썼을 때 

나는 이것이 에러인 줄 알았으나... 4개 이하이거나 중첩된 문서가 아닐 경우에는 그냥 한줄로 나온다는..!

하나 더 배웠으니 되었다! (나쁜 pretty ㅜㅜ)

 

▶ query 옵션

비교(Comparison) 연산자, 논리(Logical) 연산자, 요소(Element) 연산자, 배열(Array) 연산자, 등등

( 자세한 옵션은 → https://docs.mongodb.com/v3.2/reference/operator/query/ 여기서)

  • 비교(Comparison)  연산자

 

ex) id의 값이 3이상인 document 조회

 

  • 논리(Logical)연산자

ex ) id의 값이 3이상이면서 lvl값이 4인 document 조회

괄호 정말 중요함... 진짜 중요함....

 

- $regex 연산자

 document를 정규식을 통해 찾을 수 있음.

regex의 사용법 4가지

regex연산의 옵션으로는 다음과 같다.

ex) 이름에 ta가 들어가는 document조회 ( 대소문자 무시)

 

- $where연산자

where연산자를 통하여 javascript expression(표현식)을 사용할 수 있음.

ex) class의 문자길이가 7 이상인 document 조회

- $elemMatch 연산자

embedded documents(중첩되었지만 독립적인 그런 문서..?!) 배열을 쿼리할 때 사용

 

▶ projection 옵션 - 쿼리의 결과값에서 보여질 field를 정함. 

다음과 같이 실행 결과,  true/false 둘다 통일성있게 적어주어야 하는듯 하다.

만약 true, false 둘다 쓸 거면 존재하는 모든 key를 다써줘야 하는듯. 안그럼 에러발생!

 

그러니까... 보고 싶은 field만 쓰던지, 보기 싫은 field만 쓰던지 해서 true/false 지정해주기!

 

- $slice 연산자

embedded document 배열을 읽을때 limit 설정.

여러개의 embedded document가 있을 때 slice: n 으로 하면 n개의 document만 출력.

 

- $elemMatch 연산자

query연산자의 $elemMatch 연산자와 사용법은 같지만 역할이 다르다.

(요놈은 조금 더 공부하고 추가하기!)

 

 

ㅠㅠ 쉬운내용이라고 미루다가 큰일날 뻔... 바로바로 공부해야지!!!

728x90
반응형
LIST