$regex(正则匹配)

最后更新:2026-10-09

$regex(正则匹配)

$regex 用正则表达式匹配字符串字段。`{ name: { $regex: '^A' } }` 匹配以 A 开头的名字。默认大小写敏感,选项 i 忽略大小写、m 多行匹配、x 忽略空白。注意:字段无索引时正则查询会全表扫描;只有前缀锚定(^)且大小写敏感的正则才能有效利用普通索引。

分类元素与求值
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ <字段>: { $regex: <正则表达式>, $options: '<选项>' } }

⚙️ 参数

字段要匹配的文档字段名。
正则表达式PCRE 风格的正则模式。
选项可选:i 忽略大小写、m 多行、x 忽略空白等。

返回值:匹配的文档游标

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $regex:名字以 A 开头(大小写敏感)
db.users.find({ name: { $regex: '^A' } })

// 忽略大小写:包含 mongodb 的任意位置
db.articles.find({ title: { $regex: 'mongodb', $options: 'i' } })

运行结果:

// 返回 name 以 A 开头的用户;title 任意位置含 mongodb(不分大小写)的文章

📌 注意事项

📚 相关教程

❓ 常见问题

Q$regex 怎么忽略大小写?
A加 $options: 'i',如 { name: { $regex: 'alice', $options: 'i' } }。
Q$regex 能走索引吗?
A只有前缀锚定且大小写敏感的正则(如 ^A)能利用普通索引,其他情况全表扫描。
Q全文搜索该用 $regex 还是 $text?
A数据量大建议 $text(文本索引、词干化);$regex 适合小数据或精确模式匹配。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏