Regular Expression(正则表达式)

最后更新:2026-10-09

Regular Expression(正则表达式)

Regular Expression是BSON中的正则类型,用于查询时的模式匹配,等价于查询条件`{ field: /pattern/ }`,支持PCRE语法与选项(i忽略大小写、m多行、s点号匹配换行、x忽略空白)。注意:无前缀锚定的正则无法利用索引,会全表扫描,大数据集上要慎用。

分类BSON 类型
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

{ field: /^prefix/ }
{ field: /pattern/i }
new RegExp("pattern", "i")

返回值:正则值本身;查询时返回匹配文档

▶ 示例

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

// Regular Expression:模式匹配查询
use shop
db.users.find({ name: /^alice/i })
db.products.find({ sku: { $regex: 'AB-\\d{4}' } })

运行结果:

// 返回以alice开头(忽略大小写)的用户,以及sku形如AB-1234的商品

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q正则查询能用索引吗?
A只有以固定前缀开头的模式(如/^abc/)能利用索引,其余全表扫描。
Q$regex和/pattern/一样吗?
A一样,都是构造正则查询,$regex接受字符串形式。
Q正则性能差怎么办?
A改前缀匹配加普通索引,或建text索引做全文搜索。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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