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 中执行其他常见操作: