我使用聚合查询显示某些代码段的结果
if (name) {
sort = { '$sort': { name: -1 } }
} else {
sort = ''
}
User.aggregate([sort, { $match: {} }])
问题是当未设置name的值时,聚合查询给出错误如何在nodejs中使此聚合查询动态化。我需要在任何地方放置排序选项,具体取决于用户选择的过滤器。
答案 0 :(得分:2)
这应该有效:
var query = [{
$match: {}
}]
if(name)
{
query.unshift({ '$sort': { name: -1 } });
}
User.aggregate(query)