2017-01-07 4 views
0

私はフィルタに基づいて検索のための集計を構築しました。ユーザーが検索できるものはオプションです。したがって、一致を任意にする方法はあります。たとえば、ユーザーは日付を選択できます。選択しなかった場合、集計関数は一致日を使用しません。私は検索mongodbドキュメントのためのmongoose集約を構築しています

db.articles.aggregate(
     [ { 
      $match : { date : userSelectedDate }, { else : elseSelection} 
     } ] 
    ); 

何の日付が選択されていない場合=>日付マッチングをキャンセルし、一致anothers

答えて

2

私は動的にクエリ文書を構築しようとするだろう。

var query = [] 
if (userSelectedDate){ 
    query.push({ $match : { date : userSelectedDate }}) 

db.articles.aggregate(query) 
0

ソリューションを使用してマングースのドキュメントにあった:(OPS)集計#はappendを

は今、私が使用することができそうであれば、集約

aggregate.append({ $project: { field: 1 }}, { $limit: 2 }); 

をした後、この集約パイプライン に新しい演算子を追加します(条件)を追加する前に

mongoose documentation for append

関連する問題