반응형

MongoDB는 SQL을 사용하지 않는 대신 json과 비슷한 쿼리 언어를 사용한다.

5.1 전자상거래 쿼리

상품 , 카테고리 , 사용자 , 주문 그리고 상품 리뷰에 대한 도큐먼트 구조를 정의 했다. 

 

5.1.1 상품 , 카테고리 , 리뷰

상품 정보 페이지

상품 리스트페이지

 

findOne vs find쿼리

findOne는 도큐먼트를 반환하는 반면에 find는 커서 객체를 반환한다.

findOne은 비록 제한을 적용해도 커서가 반환되기는 하다.

db.products.find({'slug':'wheel-barrow-9092'}).limit(1)

 

skip, limit그리고 쿼리 옵션

 

상품 리스트 페이지

이웃 카테고리는 상위 카테고리가 같은 카테고리들이므로 이웃 카테고리에 대한 쿼리는 간단하다.

 

5.1.2 사용자와 주문

 

5.2 MongoDB의 쿼리 언어

5.2.1 질의 조건과 셀렉터

범위

$lt ~보다 작은

$gt ~보다 작은

$lte ~보다 작거나 같은

$gte ~보다 크거나 같은

 

집합 연산자

$in 어떤 인수든 하나라도 참고 집합에 있는 경우 일치

$all 모든 인수가 참고 집합에 있고 배열이 포함된 도큐먼트에서 사용되는 경우 일치

$nin 그 어떤 인수도 참고 집합에 있지 않을 경우 일치 

 

부울 연산자

$ne 인수가 요소와 같지 않은 경우 일치

$not 일치 결과를 반전시킴(반대로 만듦)

$or 제공된 검색어 집합 중 하나라도 TRUE인 경우 일치

$nor 제공된 검색어 집합 중 그 어떤 것도 TRUE가 아닌 경우 일치

$and 제공된 검색어 집합이 모두 TRUE인 경우 일치

$exists 요소가 도큐먼트 안에 존재할 경우 일치

 

배열

$elemMatch  제공된 모든 조건이 동일한 하위 도큐먼트에 있는 경우 일치

$size 배열 하위 도큐먼트의 크기가 제공된 리터럴 값과 같으면 일치

 

$regex-요소를 제공된 정규 표현식과 맞춰 본다.

 

$mod[(몫),(결과)] 몫으로 나눈 결과가 요소와 일치할 경우 일치

$type 요소의 타입이 명시된 bson타입과 일치할 경우 일치

$text 텍스트 인덱스로 인덱싱된 필드의 내용에 대해 텍스트 검색을 수행할 수 있도록 해준다.

 

 

 

 

출처 MongoDB in Action

반응형

+ Recent posts