MongoDB中的else if语句详解

在MongoDB中,我们可以使用$cond$ifNull等操作符来实现类似于else if语句的功能,下面是一些常用的操作符及其用法:

MongoDB中的else if语句详解
(图片来源网络,侵删)

1、$cond操作符

$cond操作符用于根据给定的条件返回不同的值,它接受三个参数:条件表达式、满足条件时返回的值和不满足条件时返回的值。

语法:

{ $cond: { if: <expression>, then: <true_case>, else: <false_case> } }

示例:

假设我们有一个名为students的集合,其中包含以下文档:

{ "_id": 1, "name": "张三", "score": 85 }
{ "_id": 2, "name": "李四", "score": 90 }
{ "_id": 3, "name": "王五", "score": 78 }

我们想要根据学生的分数给他们打上等级标签,可以使用$cond操作符实现:

db.students.aggregate([
  {
    $addFields: {
      grade: {
        $cond: [
          { $gte: ["$score", 90] },
          "A",
          {
            $cond: [
              { $gte: ["$score", 80] },
              "B",
              {
                $cond: [
                  { $gte: ["$score", 70] },
                  "C",
                  "D"
                ]
              }
            ]
          }
        ]
      }
    }
  }
])

2、$ifNull操作符

$ifNull操作符用于检查一个值是否为null,如果为null则返回指定的默认值,否则返回原始值。

语法:

{ $ifNull: [ <expression>, <default_value> ] }

示例:

假设我们有一个名为employees的集合,其中包含以下文档:

{ "_id": 1, "name": "张三", "department": null }
{ "_id": 2, "name": "李四", "department": "技术部" }
{ "_id": 3, "name": "王五", "department": "市场部" }

我们想要查询员工的姓名和部门,如果部门为null,则显示"未知",可以使用$ifNull操作符实现:

db.employees.aggregate([
  {
    $addFields: {
      department: { $ifNull: ["$department", "未知"] }
    }
  }
])

通过这些操作符,我们可以在MongoDB中实现类似于else if语句的功能。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/482555.html

(0)
未希新媒体运营
上一篇 2024-04-16 14:03
下一篇 2024-04-16 14:05

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入