2017-12-29 7 views
0

두 가지 모델 - M1과 M2가 있습니다.몽구스 인구 :

M1에는 M2 개체 배열이 있습니다.

많은 M1 모델을 가져올 쿼리를 만들려고합니다.하지만 M2의 특정 필드가 설정된 기준과 일치하는 경우에만 쿼리를 만들려고합니다.

모델을 올바르게 설정 했으므로 (M1에는 M2에 대한 Schema.Types.ObjectId 배열이 있음).

이상적으로 나는 이런 식으로 뭔가하고 싶은 것 :

var result = await M1.find({ 
     'm2.title': 'title-match', 
     // ... 
     // Plus other criteria 
    }) 
    .populate('m2') 
    .exec(); 

그래서 내가 다시 싶은 것은 '제목'이 M2 모델이있는 모든 M1 모델이다 '타이틀 매치'로 설정 .

그러나 이것은 작동하지 않는 것 같아요. 이유는 모르겠습니다.

채우기 기능에서 '일치'를 사용해 보았지만 다른 설정 찾기 기준과 잘 맞지 않습니다 (예를 들어 채우기 기능과 일치시킬 수는 있지만 M1 모델이있는 경우 올바른 M2 모델을 가지고 있지만 다른 기준을 충족시키지 못한다면 빠져 나옵니다.)

필자는 모든 채우기 필터링을 다른 필터와 섞어서 결과에 포함할지 여부를 정확하게 평가해야합니다.

답변