如果给定参数,猫鼬聚合过滤器
Posted
技术标签:
【中文标题】如果给定参数,猫鼬聚合过滤器【英文标题】:mongoose aggregate filter if param given 【发布时间】:2021-12-07 12:36:11 【问题描述】:我有一个聚合,其中状态和 id 在查找管道中匹配。在集合中有一些角色,我从 request.query 中获得。如果角色请求为空,我想显示每个数据。但如果它不为空,我只想显示角色为“用户”的数据。我的代码给出了结果。但是当request.query为空时,不匹配,结果为空。
我怎样才能做到这一点?
我目前的比赛阶段
$match:
$and: [
$expr: $eq: ["$$id", "$_id"] ,
,
status: 1 ,
],
$or: [ role: role ],
,
,
【问题讨论】:
【参考方案1】:可以放JS条件,如果role
有值则返回值,否则为空对象,不需要$or
操作符,
$match:
$and: [
$expr: $eq: ["$$id", "$_id"] ,
,
status: 1 ,
role ? role: role :
]
,
,
【讨论】:
以上是关于如果给定参数,猫鼬聚合过滤器的主要内容,如果未能解决你的问题,请参考以下文章