Mongodb:如何查找字符串的长度


您可以使用以下方法查找 MongoDB 中字符串的长度并在查询中使用该字符串长度:

方法一:求链条长度

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

方法二:查找字符串大于一定长度的文档

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

以下示例展示了如何通过收集团队使用每种方法并提供以下文档:

 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})

示例 1:查找字符串的长度

我们可以使用下面的代码来计算每个文档的“name”字段中字符串的长度:

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

此代码返回以下结果:

 { _id: ObjectId("62014eff4cb04b772fd7a93d"),
  name: 'Dallas Mavs',
  length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
  name: 'Boston Celtics',
  length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
  name: 'Cleveland Cavs',
  length: 14 }

长度值显示“名称”列中字符串的长度。

例如:

  • “Dallas Mavs”链的长度是11
  • “圣安东尼奥马刺队”链条的长度为17

等等。

请注意,长度也包括空格。

示例2:查找字符串大于一定长度的文档

我们可以使用以下代码仅返回“name”列中的字符串大于14的文档:

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

该查询返回以下结果:

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

请注意,仅返回的两个团队是“name”字段大于14的团队。

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

其他资源

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

MongoDB:如何将字符串拆分为子字符串数组
MongoDB:如何连接两个字段的字符串
MongoDB:如何替换字符串

添加评论

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