Skip to content

MongoDB 正则表达式

基本用法

find 等条件中,对字符串字段可使用正则:

javascript
db.users.find({ name: // })           // 包含“张”
db.users.find({ name: /^/ })          // 以“张”开头
db.users.find({ name: /$/ })          // 以“三”结尾
db.users.find({ name: /|/ })        // 包含“张”或“李”

不区分大小写

javascript
db.users.find({ email: /gmail\.com$/i })

i 表示不区分大小写。

使用 $regex 操作符

可配合 $options(如 ims)使用:

javascript
db.users.find({ name: { $regex: "张", $options: "i" } })

性能注意

  • 正则若以 ^ 开头且无前导通配,可能走索引;否则多为全表扫描。
  • 复杂正则或大数据量时注意性能,可考虑文本索引或外部搜索引擎。下一节介绍 MongoDB 管理工具