我正在使用$ redact运算符:
{ $redact: {
$cond: {
"if": {
"$lt": [ "$number1", "$number2" ],
},
"then": "$$KEEP",
"else": "$$PRUNE"
}
}}
我想$and: [{$lt:["$number1, $number2"]}, {$exists:[$number3, 1]}]
,但我无法获取$ exists,或检查null。
答案 0 :(得分:1)
你想要$ifNull
,因为它是一种""""等效的,具有在字段不存在的情况下返回备用值的附加功能:
{ "$redact": {
"$cond": {
"if": {
"$and": [
{ "$lt": [ "$number1", "$number2" ] },
{ "$ifNull": [ "$number3", false ] }
]
},
"then": "$$KEEP",
"else": "$$PRUNE"
}
}}
因此,如果该字段存在,则返回该字段的值,这与说true
基本相同(除非它的值实际上是false
,在这种情况下,用{{换行1}}),或返回已作为$cond
提供的备用。