如何在聚合函数之间添加if条件,假设我有来自请求“ input”的一个参数,如果我有输入,我想查看id大于该id,如果我没有输入,我将不匹配ID,我该如何实现?
collection.aggregate(
// Pipeline
[
// Stage 1
{
$match: {
"created_at": {$gte: fromDate, $lt: toDate},
"type": {$in : typeArray},
if (input){
"_id": {$gte: ObjectId("blahblahblah")}
}
}
},
{
$lookup: // Equality Match
{
from: "users",
localField: "some_id",
foreignField: "_id",
as: "user"
}
},
{
$sort:
{
"_id": 1
}
},
{
$limit: pageSize
}
])
答案 0 :(得分:0)
对于IF条件,您可以这样使用
{$ cond:{如果:(boolean-expression),则:(true-case),否则: (假)}}
OR
{$ cond:[(boolean-expression),(true-case),(false-case)]
有关参考资料,您可以查看文档
https://docs.mongodb.com/manual/reference/operator/aggregation/cond/