或者使用If和在MongoDB中 [英] Or with If and In mongodb
本文介绍了或者使用If和在MongoDB中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
{
$cond: {
if: { $in: [`$$${field.fieldName}`, ['', null]] },
then: [],
else: `$$${field.fieldName}`,
},
},
在这种情况下,我还想检查field.fieldName是否存在。
$exists: true,
那么它将类似于
if ( !filed.fieldName || field.fieldName === null || field.fieldName === '') then []
我找不到任何方法在此添加$exits: true
或false
。
如果能给这个加点什么,请帮帮忙。或任何其他实现方式?
推荐答案
只需将$ifNull
放入其他部分,如果不存在则返回[]
,
{
$cond: {
if: {
$in: [`$$${field.fieldName}`, ["", null]]
},
then: [],
else: { $ifNull: [`$$${field.fieldName}`, []] }
}
}
输入:
[
{ "key": null },
{ "key": "" },
{ "A": "a" }
]
结果:
[
{
"key": null,
"status": []
},
{
"key": "",
"status": []
},
{
"status": []
}
]
第二种方法,如果要在if
部分添加现有条件,可以使用$or
,
$type
将返回字段的数据类型缺少的字段类型是";Missing";
{
$cond: {
if: {
$or: [
{ $eq: [{ $type: `$$${field.fieldName}` }, "missing"] },
{ $in: [`$$${field.fieldName}`, ["", null]] }
]
},
then: [],
else: `$$${field.fieldName}`
}
}
这篇关于或者使用If和在MongoDB中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文