본문 바로가기

DB

몽구스 여러개의 조건으로 다큐먼트 찾기

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