728x90
반응형
SMALL
배열쿼리
Querying Arrays
genres랑 reviews가 배열쿼리면서
reviews는 또 중첩 Documents
장르가 판타지인 책 한번 가져와 보자
배열이라 해서 뭐 복잡할거 없다
알던대로 일단 써보면
![]() |
|
![]() |
![]() |
![]() |
![]() |
엥 Array 배열인데 그냥 String 값 넣듯 넣으면 나온다고?
어떻게???
걍 나온다 그러니 앞으로 이렇게 쓰면 된다
그리고 잘 보면 배열안에 들어있는채로 그 해당하는 책들이 나왔다
이게 배열이니깐 꼭
이렇게 써야만 할것 같다
그런데 안나온다. . 왜? 저렇게 생긴게 만약
이렇다면?
![]() |
![]() |
이건 또 나온다.. 왜
유일하잖음
자 정리하자 머가리 복잡해질라..ㅎㅎ
일단 저 안에 뭐가 있는지 몰라 와
아님 정확이 뭐가 들었는지 알아 로
이 둘로 나뉘는데
알면? 배열 [ ] 괄호 씌우고
모르면? [ ] 괄호는 벗기고 쓰면 된다
씌우고 찾는건 정확이 알고 찾는거기 때문에 그것만 나올거고
모르고 찾는건 포함된걸 찾는거라 해당되는 데이터 전부 가져올거다
all 이란 키워드가 있네??
![]() |
![]() |
햇갈리니 정리함 하자
쿼리 | 설명 |
db.books.find({genres: "fantasy"}) | genres 필드가 정확히 "fantasy"인 도큐먼트를 반환 |
db.books.find({genres: ["fantasy"]}) | genres 필드가 배열이고 그 안에 "fantasy"가 포함된 도큐먼트를 반환 |
db.books.find({genres: {$all: ["fantasy", "sci-fi"]}}) | genres 필드가 배열이고 그 배열에 "fantasy"와 "sci-fi"가 모두 포함된 도큐먼트를 반환 |
뭔가 말장난 스럽고 $all 키워드를 쓰고 안쓰고의 차이가 명확이 와닿지 않음..
그래서 한번 더 정리
옵션 | 설명 |
$all 사용 | genres 필드가 배열이고 그 배열에 지정된 모든 값이 포함된 도큐먼트만 반환 |
$all 안사용 | genres 필드가 배열이고 그 배열에 지정된 값이 포함된 모든 도큐먼트가 반환 |
이래 봐도 같은말 같은데............
중첩된 데이터 함 가져와보자
중첩된 데이터도
배열 형식이다
그럼 알던대로 갖고 온다면
![]() |
|
![]() |
![]() |
json 정보 갖고 오듯 하면 될까?
했는데 되네..?
배열안에 들어있는 데이터 갖고오기 끝!
728x90
'SQL' 카테고리의 다른 글
14) mongoDB Tutorial - 데이터 수정하기(Updating Documents) (0) | 2023.10.06 |
---|---|
13) mongoDB Tutorial - Collection에서 Document 삭제하기 (0) | 2023.10.06 |
11) mongoDB Tutorial - $in과 $nin (포함과 안포함) (0) | 2023.10.06 |
10) mongoDB Tutorial - 연산자와 복합연산자 쿼리 (0) | 2023.10.06 |
9) mongoDB Tutorial - Nested Documents (0) | 2023.10.06 |