Mongodb:如何检查字段是否包含字符串
您可以在 MongoDB 中使用以下语法来检查某个字段是否包含特定字符串:
db.collection.findOne({ name : { $regex : /string/ }})
以下示例展示了如何在具有以下文档的催收团队中使用此语法:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
示例1:检查字段是否包含字符串
我们可以使用以下代码来检查 team 字段中是否存在包含字符串“avs”的文档:
db.teams.findOne({ team : { $regex : /avs/ }})
该查询返回以下文档:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
请注意, findOne()函数返回集合中满足查询条件的第一个文档。
这意味着其他球队的球队名称中也可能包含字符串“avs”,但包含球队名称“Mavs”的文档只是第一个。
示例2:检查字段是否包含字符串(不区分大小写)
我们还可以在字符串后面使用i来进行不区分大小写的匹配。
例如,假设我们使用以下查询:
db.teams.findOne({ team : { $regex : /AVS/i }})
此查询还返回以下文档:
{ _id: ObjectId("618050098ffcfe76d07b1da5"), team: 'Mavs', position: 'Guard', points: 31 }
示例3:检查字段是否包含字符串(无结果)
如果某个字段不包含我们要查找的特定字符串,我们将相应地收到null 。
例如,假设我们使用以下查询:
db.teams.findOne({ team : { $regex : /ricks/ }})
该查询返回以下结果:
null
由于没有文档包含团队名称中的字符串“ricks”,因此我们收到的结果为null 。
注意:您可以在此处找到$regex的完整文档。
其他资源
以下教程解释了如何在 MongoDB 中执行其他常见操作:
MongoDB:如何在特定字段中搜索“not null”
MongoDB:如何使用“Like”正则表达式进行查询
MongoDB:如何向集合添加新字段
MongoDB:如何从每个文档中删除字段