如果字段存在必须为真,但如果不存在则必须像真一样通过
Posted
技术标签:
【中文标题】如果字段存在必须为真,但如果不存在则必须像真一样通过【英文标题】:If field exist must be true, but if not exist must be pass like true 【发布时间】:2020-06-13 10:40:23 【问题描述】:我想检查管道aggregate
(existeTransformacion
) 中是否存在字段。如果此字段存在必须为真才能通过($match
),如果为假,我需要从结果中排除,但如果不存在则必须通过。我怎样才能做到这一点?
//...more data
"ubicacionActual":
"transformacion":
"trabajando": true,
,
//This field come from $project in this way
//$project: existeTransformacion: '$ubicacionActual.transformacion.trabajando'
"existeTransformacion": true,
"paso": 1
,
所以基本上:
如果存在existeTransformacion
和existeTransformacion===true
必须展示。
如果存在existeTransformacion
和existeTransformacion===false
一定没有显示。
【问题讨论】:
有点迷惑:你已经有了existeTransformacion
这个字段?或者你需要计算它的价值? $match
仅适用于管道步骤,不适用于 $project
【参考方案1】:
您需要使用$or
和$exists
运算符
$match:
$or: [
"existeTransformacion": true
,
"existeTransformacion":
$exists: false
]
MongoPlayground
【讨论】:
以上是关于如果字段存在必须为真,但如果不存在则必须像真一样通过的主要内容,如果未能解决你的问题,请参考以下文章