我正在为搜索mongodb文档构建一个mongoose聚合

时间:2017-01-07 21:28:18

标签: mongodb mongoose mongodb-query aggregation-framework

我根据过滤器构建了一个搜索聚合。用户可以搜索的东西是可选的,那么有没有办法使匹配可选 - 例如用户可以选择日期,如果他没有选择,我希望聚合函数不使用匹配日期

echo "export PATH=$PATH:/path/to/your/latest/node/bin/node" >> ~/.bashrc;

如果没有选择日期=>取消日期匹配并匹配其他人

2 个答案:

答案 0 :(得分:2)

我会尝试动态构建查询文档。

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

db.articles.aggregate(query)

答案 1 :(得分:0)

解决方案是在mongoose文档中使用:Aggregate#append(ops)

将新运算符追加到此聚合管道 有了汇总后

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

所以现在我可以在追加

之前使用if(条件)

mongoose documentation for append