2017-12-29 12 views
0

私はM1とM2の2つのモデルを持っています。モンゴースが住んでいます

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モデルであります。

しかし、これは動作していないようだし、私は理由がわからない。

私はpopulate関数で 'match'を使用しようとしましたが、これは他の検索条件設定ではうまくいきません(たとえば、populate関数での一致を含めることができますが、正しいM2モデルを持っていますが、他の基準を満たしていない場合は除外されます)。

私はすべての人口フィルタリングを他のフィルタと混在させて、結果に含めるべきかどうかを正しく評価する必要があります。

答えて

関連する問題