Appearance
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(如 i、m、s)使用:
javascript
db.users.find({ name: { $regex: "张", $options: "i" } })性能注意
- 正则若以
^开头且无前导通配,可能走索引;否则多为全表扫描。 - 复杂正则或大数据量时注意性能,可考虑文本索引或外部搜索引擎。下一节介绍 MongoDB 管理工具。