2021. 11. 13. 18:27ㆍ작업/MongoDB
SQL 과 몽고디비 쿼리의 모습
{ 필드: {연산자: 값} }
몽고디비의 쿼리는 가장 바깥쪽에 필드가 있다. 그러나 or, and, nor, text 등의 연산자들은 바깥에 사용될 수 있다.
or,and,nor는 쿼리를 값으로 가질 수 있고 그것은 []로 담는다.
몽고디비에서 쿼리 내에 []가 있으려면 연산자가 있어야 함.
점 표기법 : BSON 내부의 Object에 접근하기 위한 방법
object내부의 내부에 또 접근한다.
배열에서도 index 첫번쨰 인덱스에 접근할 때는 이렇게 접근할 수 있다.
실습 1 점 표기법
비교연산자
영어 비교는 사전순, 배열의 대소비교는 첫 인덱스부터 그 요소를 비교. 키와 값도 비교
실습 2 조건에 맞지 않는 도큐먼트 찾기
$in과 re.complie 사용해서 쿼리 찾기
실습 3 크기 비교 연산자 $gte, lte col.find({},{})
논리 연산자 or, and, not
$or 연산자의 값으로는 배열 [query1, query2 ...] 이 온다. 그 안에 필요한 도큐먼트(쿼리)들이 있음.
실습 4 논리 연산자
실습 5 복합 논리 연산자
문자열 연산자
article01 article02가 나오도록
문자열 Text 연산자
문자열 인덱스
{ '$text': {'$search':찾을 단어1 찾을 단어2 ..} } 얘는 'name' 'author' 같은 필드를 따로 정의안해줘도 된다.
Text 연산자는 Bake 랑 baking 등 동사,진행형 등 유사한 결과들도 다 검색해준다.
실습 6 제목 검색하기 문자열 연산자 사용
배열 연산자
몽고db의 도큐먼트에서 find할 때 어떤 필드의 값이 배열이면, 그 배열에 어떤 특정 요소를 가진 도큐먼트만 출력이 된다.
배열은 값이 여러개(순서 상관 있음)인 것으로 인식한다.
- $all
all을 쓰면 포함하는 배열을 모두 불러온다.안쓰면 정확히 그 요소만 가진 도큐먼트를 부른다.
- $elemMatch
- $size
실습 7 배열 속 특정 값을 가진 도큐먼트 찾기
쿼리 안에 또 쿼리가 있으면 elemMatch 로 query find 하기
실습 8 쿼리 안에 쿼리, $all, $size 모두 사용
'작업 > MongoDB' 카테고리의 다른 글
21.11.12 MongoDB 3 넷플릭스 실습 / 고급 활용 기술 (0) | 2021.11.14 |
---|---|
21.11.14 8주차 모의테스트 (0) | 2021.11.14 |
21.11.12 MongoDB 1 개념 이론, MongoDB CRUD 해보기 (0) | 2021.11.13 |