728x90
* 연습과제 1
해답 1 - 이름으로 검색
db.inventory.find({item:"postcard"})
해답 2 - 다수의 조건을 동시에 만족하는 배열요소를 하나 이상 포함하고 있는 도큐먼트 검색
db.inventory.find({dim_cm:{$elemMatch:{$gt:15, $lt:16}}})
해답 3 - 배열 인덱스에서 특정 조건을 만족하고 있는 쿼리 검색
db.inventory.find({"dim_cm.1":{$lt:16}}) // dim_cm 배열의 두번째 요소 값 기준
db.inventory.find({"dim_cm.0":{$lt:11}}) // dim_cm 배열의 첫번째 요소 값 기준
db.inventory.find({"tags.0": "blue"}) // tags 배열의 첫번째 요소값 기준
해답 4 - 배열의 길이가 일치하는 도큐먼트 쿼리 검색
db.inventory.find( { "tags": { $size: 1 } } )
해답 5 - 필드에서 특정 값을 포함하지 않는 쿼리 검색
db.inventory.find({ tags: { $nin: ["red"] }})
* 연습과제 2
해답 1 - 특정 배열요소를 포함하고 있는 도큐먼트 쿼리
db.inventory.find({tags:"plain"}) // paper에만 tags에 'plain'이 있음
해답 2 - 배열 길이가 일치하는 도큐먼트 쿼리
db.inventory.find({"tags":{$size:3}}) // paper만 tags 요소가 3개
해답 3 - 다수의 조건을 만족하는 도큐먼트 쿼리
db.inventory.find({ qty: 100, dim_cm: [14, 21]})
해답 4 - 특정 배열요소가 조건을 만족하는 도큐먼트 쿼리
db.inventory.find({ "tags.2": "plain"})
* 연습과제 3
해답 1 - 인덱스로 선택한 배열요소(객체)의 필드가 특정 조건을 만족하는 도큐먼트 쿼리
db.inventory.find( { 'instock.1.warehouse': "B" } )
해답 2- 객체의 필드가 특정 조건을 만족하는 도큐먼트 검색
db.inventory.find({'instock.warehouse':{$nin:["C"]}}) // warehouse에 C가 없는 요소 검색
db.inventory.find({'instock.qty':{$gte:40}}) // qty가 40보다 크거나 같은 요소 검색
* 연습과제 4
해답 1 - 배열요소(객체)의 필드가 특정조건을 만족하는 도큐먼트 쿼리
db.inventory.find({'instock.0.qty':5}) // instock의 첫번째 객체의 qty가 5
db.inventory.find({'instock.warehouse':{$nin:["B"]}}) // warehouse에 "B"가 없음
해답 2 - 다수의 조건을 동시에 만족하는 배열요소를 하나 이상 포함하고 있는 도큐먼트 쿼리
db.inventory.find({"instock":{$elemMatch:{qty:5, warehouse:{$nin:["B"]}}}}) // $elemMatch 사용
instock 배열의 객체 중에서 qty 필드값이 5이고 동시에 warehouse 필드값이 "B"를 포함하고 있지 않은 도큐먼트
해답 3 - 다수의 조건을 동시에 만족하는 배열요소를 하나 이상 포함하고 있는 도큐먼트 쿼리
db.inventory.find({"instock":{$elemMatch:{warehouse:{$gt:"B"}, qty:{$lt:16}}}}) // 문자열 비교 사용
instock 배열의 객체 중에서 warehouse 필드값이 "B"보다 크고 동시에 qty 필드값이 16보다 작은 도큐먼트
728x90
'데이터베이스 > MongoDB 연습과제 해답' 카테고리의 다른 글
Mongo DB 설치 및 데이터 CRUD (생성, 조회, 변경, 삭제) 해답 (0) | 2022.03.29 |
---|