2017-09-27 5 views
0

以下のように、mongoテンプレートでの一致操作を定義しました。Mongoテンプレート:動的に一致操作を変更する

MatchOperation match = Aggregation.match(new Criteria("workflow_stage_current_assignee").ne(null) 
      .andOperator(new Criteria("CreatedDate").gte(new Date(fromDate.getTimeInMillis())) 
      .andOperator(new Criteria("CreatedDate").lte(new Date(toDate.getTimeInMillis()))))); 

これまではすべて問題ありません。しかし、私は作成した参照matchを使用して、この一致操作を変更することはできません。私は、すでに作成されている参照に必要なときに、複数の条件節を追加することができるListの種類の機能を探していました。何かの行にmatch.add(new Criteria)

しかし、MatchOperationは、現在この機能を提供する方法をサポートしていません。この点についての助けに感謝します。

答えて

0

Criteriaは、新しい基準を追加する場所で、リストに基づいています。

スタティックCriteria where(String key)メソッドを使用して、初期化基準オブジェクトを作成します。

何か以上の基準の

criteria.and("key2").is("value2"); 

を追加

Criteria criteria = where("key1").is("value1"); 

のような既存の基準チェーンへの暗黙的な $and基準とチェーンを作成します。

criteria.and(where("key3).gt(value3).lte(value4)) 

完了したら、操作に合わせて渡してください。

MatchOperation match = Aggregation.match(criteria); 
+0

回答が助けになりました。以下のコードの小さな変更を除きます。 'Criteria criteria = Criteria.where(" key1 ")。is(" value1 ")' –

関連する問題