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