首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mongo addFields从嵌套数组中获取值

MongoDB的$addFields操作符可以用于向文档中添加计算字段,也可以从嵌套数组中获取值并将其添加到文档中。

在使用$addFields操作符时,可以使用点符号(.)来访问嵌套数组中的值。以下是一个示例:

假设我们有以下文档结构:

代码语言:txt
复制
{
  "_id": 1,
  "name": "John",
  "grades": [
    {
      "subject": "Math",
      "score": 90
    },
    {
      "subject": "English",
      "score": 85
    }
  ]
}

如果我们想要从grades数组中获取Math科目的分数,并将其添加为新的字段mathScore,我们可以使用$addFields操作符:

代码语言:txt
复制
db.students.aggregate([
  {
    $addFields: {
      mathScore: {
        $arrayElemAt: [
          {
            $filter: {
              input: "$grades",
              as: "grade",
              cond: {
                $eq: ["$$grade.subject", "Math"]
              }
            }
          },
          0
        ]
      }
    }
  }
])

在上述示例中,我们使用$filter操作符过滤了grades数组,只保留了subject字段值为Math的元素。然后,我们使用$arrayElemAt操作符将过滤后的数组中的第一个元素(即Math科目的信息)添加为新字段mathScore

最终的结果将类似于:

代码语言:txt
复制
{
  "_id": 1,
  "name": "John",
  "grades": [
    {
      "subject": "Math",
      "score": 90
    },
    {
      "subject": "English",
      "score": 85
    }
  ],
  "mathScore": {
    "subject": "Math",
    "score": 90
  }
}

在腾讯云的云数据库MongoDB中,您可以使用$addFields操作符来实现类似的功能。相关的产品是"TencentDB for MongoDB",您可以在以下链接中找到更多信息:

TencentDB for MongoDB

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券