Mongodb:如何使用“like”正则表达式进行查询


您可以使用以下方法通过“like”正则表达式查询MongoDB:

方法一:查找包含字符串的文档

 db.collection.find({ name : { $regex : /string/i }})

请注意, i表示不区分大小写的匹配。

方法2:查找以字符串开头的文档

 db.collection.find({ name : { $regex : /^string/i }}) 

方法3:查找以字符串结尾的文档

 db.collection.find({ name : { $regex : /string$/i }}) 

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

 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.find({ team : { $regex : /avs/i }})

该查询返回以下两个文档:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

示例 2:查找以字符串开头的文档

我们可以使用以下代码来搜索位置字段中以字符串“gua”开头的所有文档:

 db.teams.find({ position : { $regex : /^gua/i }})

该查询返回以下三个文档:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

示例 3:查找以字符串结尾的文档

我们可以使用以下代码来查找位置字段中以字符串“ward”结尾的所有文档:

 db.teams.find({ position : { $regex : /ward$/i }})

该查询返回以下文档:

 { _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

添加评论

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