如何将逗号分隔的字符串字段变成MongoDB中的数组?
我有三个看起来像这样的文档:
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: "English,Spanish,French"
_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: "English"
_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: ""
如您所见,语言字段可以是空的,有一个项目,也可以用逗号分隔的多个项目。
如何将语言字段变成数组?最终结果应该看起来像这样:
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: [
"English",
"Spanish",
"French"
]
_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: [
"English"
]
_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: []
I have three documents that looks like this:
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: "English,Spanish,French"
_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: "English"
_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: ""
As you can see, the languages field can either be empty, have one item, or multiple items separated by commas.
How can I turn the languages field into an Array? The end result should look like this:
_id: ObjectId('61e1312ad435c7124aa883a1')
name: "Brian"
languages: [
"English",
"Spanish",
"French"
]
_id: ObjectId('52e1312ad435c7124aa883a2')
name: "Max"
languages: [
"English"
]
_id: ObjectId('37e1312ad435c7124aa883a9')
name: "Mike"
languages: []
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 $ split :
mongo playground
如果您想更新整个集合带有“管道更新”语法:
You can use $split to do this, like so:
Mongo Playground
If you want to update the entire collection you can use the same pipelined within an update with the "pipelined update" syntax: