Mongodb:如何将字符串拆分为子字符串数组


您可以使用以下语法将字符串拆分为 MongoDB 中的子字符串数组:

 db.myCollection.aggregate([
  { $project : { split_field: { $split : [ " $field1 ", " " ] } } },
  { $merge : "myCollection" }
])

此特定示例根据空格将字符串“field1”拆分为名为“split_field”的新字段,并将新字段添加到名为myCollection 的集合中。

以下示例展示了如何在具有以下文档的催收团队的实践中使用此语法:

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

示例:将 MongoDB 中的字符串拆分为子字符串数组

我们可以使用以下代码将“name”列中的字符串拆分为字符串数组,并将结果显示在team集合中名为“split_name”的新字段中:

 db.teams.aggregate([
  { $project : { split_name: { $split : [ " $name ", " " ] } } },
  { $merge : "teams" }
])

更新后的集合现在如下所示:

 { _id: ObjectId("62014a924cb04b772fd7a938"),
  name: 'Dallas Mavs',
  points: 31,
  split_name: ['Dallas', 'Mavs'] }
{ _id: ObjectId("62014a924cb04b772fd7a939"),
  name: 'San Antonio Spurs',
  points: 22,
  split_name: ['San', 'Antonio', 'Spurs'] }
{ _id: ObjectId("62014a924cb04b772fd7a93a"),
  name: 'Houston Rockets',
  points: 19,
  split_name: ['Houston', 'Rockets'] }
{ _id: ObjectId("62014a924cb04b772fd7a93b"),
  name: 'Boston Celtics',
  points: 26,
  split_name: ['Boston', 'Celtics'] }
{ _id: ObjectId("62014a924cb04b772fd7a93c"),
  name: 'Cleveland Cavs',
  points: 33,
  split_name: ['Cleveland', 'Cavs'] }

请注意,每个文档都有一个名为“split_name”的新字段,其中包含“name”字段的子字符串数组。

对于这个特定的示例,我们选择使用空格作为分隔符来分割原始字符串。

如果字符串由不同的分隔符(如连字符、斜线、冒号等)分隔,则只需在$split函数中使用该分隔符即可。

注意:您可以在此处找到$split函数的完整文档。

其他资源

以下教程解释了如何在 MongoDB 中执行其他常见操作:

MongoDB:如何检查字段是否包含字符串
MongoDB:如何添加新字段
MongoDB:如何删除字段

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注