或者使用If和在MongoDB中 [英] Or with If and In mongodb

查看:28
本文介绍了或者使用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: truefalse。 如果能给这个加点什么,请帮帮忙。或任何其他实现方式?

推荐答案

只需将$ifNull放入其他部分,如果不存在则返回[]

{
  $cond: {
    if: {
      $in: [`$$${field.fieldName}`, ["", null]]
    },
    then: [],
    else: { $ifNull: [`$$${field.fieldName}`, []] }
  }
}

Playground

输入:

[
  { "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}`
  }
}

Playground

这篇关于或者使用If和在MongoDB中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆