2016-10-29 5 views
0

フィールドだけでなく、配列フィールド内のオブジェクトもフィルタリングしようとしています。以下の例を参照すると、セグメントのフィールドのために、私は唯一のセグメント配列isReleased === trueMeteorパブリケーションのいくつかの述語に基づいてサブ文書(配列)をフィルタリングするにはどうすればよいですか?

例スキーマ

でこれらのオブジェクト
{ 
    _id:  123456, 
    segments: [ 
     { 
      name: 'Type A', 
      isReleased: false, 
     }, 
     { 
      name: 'Type B', 
      isReleased: false, 
     }, 
     { 
      name: 'Type C', 
      isReleased: true, 
     } 
    ], 
} 

だから基本的に、私は私のクライアントだけで受信したい得るために、私のクライアントが欲しいです、

{ 
    _id:  123456, 
    segments: [ 
     { 
      name: 'Type C', 
      isReleased: true, 
     } 
    ], 
} 
+0

[MongoDBコレクションのオブジェクト配列内の照会された要素のみを取得する](http://stackoverflow.com/questions/3985214/retrieve-only-the-queried-element-in-an-object-array)の可能な複製-in-mongodb-collection) –

答えて

0

$elemMatch演算子を使用できます。クエリは次のようになります。

Schema.find({segments: {$elemMatch: {isReleased: true}}},...) 

詳細については、リンクの例を参照してください。

関連する問題