在 MongoDB 的聚合查询中,可以使用一些操作符来解析字符串,并将其转换为 Array 或者 Document。

  1. 使用 '$split' 操作符将字符串拆分成数组:

    {
      $project: {
        arrayField: { $split: ['$stringField', ','] }
      }
    }
    

    这将把名为 'stringField' 的字符串字段拆分成以逗号分隔的数组,并将结果存储在名为 'arrayField' 的新字段中。

  2. 使用 '$map' 操作符将数组中的每个元素转换为 Document:

    {
      $project: {
        documentField: {
          $map: {
            input: { $split: ['$stringField', ','] },
            as: 'element',
            in: { field: '$$element' }
          }
        }
      }
    }
    

    这将把名为 'stringField' 的字符串字段拆分成以逗号分隔的数组,并将每个元素转换为一个包含 'field' 字段的 Document。

  3. 使用 '$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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录