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:如何从每个文档中删除字段

添加评论

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