mongodb对排序字段选项进行动态查询

时间:2018-03-11 14:43:28

标签: arrays json node.js mongodb mongoose

我使用聚合查询显示某些代码段的结果

if (name) {
  sort = { '$sort': { name: -1 } }
} else {
  sort = ''
}

User.aggregate([sort, { $match: {} }])

问题是当未设置name的值时,聚合查询给出错误如何在nodejs中使此聚合查询动态化。我需要在任何地方放置排序选项,具体取决于用户选择的过滤器。

1 个答案:

答案 0 :(得分:2)

这应该有效:

var query = [{
    $match:   {}    
}]

if(name)
{
    query.unshift({ '$sort': { name: -1 } });
}

User.aggregate(query)