19.05.31 작성
다음과 같이 4개의 다큐먼트가 저장되어 있다고 가정한다.
1. [a, b, c]
2. [a, b, c, d]
3. [a, b, d]
4. [a, b]
1. a, b, c 를 포함하지만 다른 d는 포함하지 않는 다튜먼트를 찾고 싶을때
Model.find 에 별다른 옵션을 주지 않으면 된다.
Model.find({ categories: req.body.searchCategories }, function (err, docs) {
console.log(docs); // 정확히 categories가 a,b,c만 포함하는 것을 찾음
});
<예시 결과>
[a, b, c] 반환
[a, b] 반환
[a, b, c, d] 반환 x
[a, b, d] 반환 x
2. a, b, c 를 모두 포함하는 것들을 모두 찾고 싶을때
조건에 $in 옵션을 주면 된다. (조건에 찾는 대상들에 포함된다(in)라는 의미로 외우면 쉽다)
Model.find({ categories: {$in: req.body.searchCategories }}, function (err, docs) {
console.log(docs); // a,b,c 모두가 포함되있는 것을 찾음, 즉a,b,c,d (o) / a,b,d (x)
});
<예시 결과>
[a, b, c] 반환
[a, b] 반환 x
[a, b, c, d] 반환
[a, b, d] 반환
'DB' 카테고리의 다른 글
데이터베이스 식별, 비식별 관계 (1) | 2020.06.01 |
---|