MongoDB 聚合查询:解析字符串为数组或文档
在 MongoDB 的聚合查询中,可以使用一些操作符来解析字符串,并将其转换为 Array
-
使用 '$split' 操作符将字符串拆分成数组:
{ $project: { arrayField: { $split: ['$stringField', ','] } } }这将把名为 'stringField' 的字符串字段拆分成以逗号分隔的数组,并将结果存储在名为 'arrayField' 的新字段中。
-
使用 '$map' 操作符将数组中的每个元素转换为 Document:
{ $project: { documentField: { $map: { input: { $split: ['$stringField', ','] }, as: 'element', in: { field: '$$element' } } } } }这将把名为 'stringField' 的字符串字段拆分成以逗号分隔的数组,并将每个元素转换为一个包含 'field' 字段的 Document。
-
使用 '$split' 和 '$map' 组合操作符进行更复杂的解析:
{ $project: { arrayField: { $map: { input: { $split: ['$stringField', ','] }, as: 'element', in: { documentField: { $split: ['$$element', ':'] } } } } } }这将把名为 'stringField' 的字符串字段拆分成以逗号分隔的数组,然后将每个元素再拆分成以冒号分隔的数组,并将结果转换为一个包含 'documentField' 字段的 Document。
注意:在聚合管道中使用这些操作符时,需要将它们放在适当的聚合阶段中,如 '$project' 或 '$addFields'。
原文地址: https://www.cveoy.top/t/topic/p4ll 著作权归作者所有。请勿转载和采集!