首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MongoDB中将逗号分隔的字符串字段转换为对象数组?

问如何在MongoDB中将逗号分隔的字符串字段转换为对象数组?
EN

Stack Overflow用户
提问于 2022-06-14 06:29:35
回答 1查看 62关注 0票数 1

我有三份像这样的文件:

代码语言:javascript
复制
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: "English,Spanish,French"

_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: "English"

_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: ""

如您所见,languages字段可以是空的,有一个项,也可以是由逗号分隔的多个项。

如何将语言字段转换为对象数组?最终结果应该如下所示:

代码语言:javascript
复制
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: [
    { name: "English", active: false }
    { name: "Spanish", active: false }
    { name: "French", active: false }
]

_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: [
    { name: "English", active: false }
]

_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: []

语言字段应该是带有两个字段的对象数组," name“字段是语言的名称,"active”字段总是设置为false。

我已经成功地将逗号分隔的字符串转换为字符串数组,但我不知道如何将它转换为对象数组。

代码语言:javascript
复制
db.collection.updateMany(
{},
[
  {
    "$set": {
      "languages": {
        $filter: {
          input: {
            $split: [
              "$languages",
              ","
            ]
          },
          cond: {
            $gt: [
              {
                $strLenCP: "$$this"
              },
              0
            ]
          }
        }
      }
    }
  }
])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-14 06:42:37

您所缺少的只是最后一个$map步骤:

代码语言:javascript
复制
db.collection.update({},
[
  {
    $set: {
      languages: {
        $filter: {
          input: {$split: ["$languages", ","]},
          cond: {$gt: [{$strLenCP: "$$this"}, 0]}
        }
      }
    }
  },
  {
    $set: {
      languages: {
        $map: {
          input: "$languages",
          as: "item",
          in: {name: "$$item", active: false}
        }
      }
    }
  }
],
{multi: true})

看看它如何在操场实例上工作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72612413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档