开发者学堂课程【快速掌握 MongoDB 数据库:正则查询】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/400/detail/5189
正则查询
一、 正则运算
如果要想实现模糊查询,那么必须使用正则表达式,而正则表达式使用的是语言Perl兼容的正则表达式的形式。
1. 实现正则使用的定义格式
如果要想实现正则使用,则按照如下的定义格式:
•基础语法:{key:正则标记};
•完整语法:{key:{"$regex":正则标记,"$options":选项}}。
2.options可以做什么?
|-对于options主要是设置正则的信息查询的标记:
|-“i”:忽略字母大小写;
|-“m”:多行查找;
|-“x”:空白字符串除了被转义的或在字符类中意外的完全被忽略;
|-“s”:匹配所有的字符(圆点、“•”),包括换行的内容。
|-使用需要注意的是,如果是直接使用(Javascript)那么只能够使用i和m,而“x”和“s”必须使用“$regex”。
例:查询以“谷”开头的姓名
代码:db.students.find({"name":
/谷/}).pretty();
例:查询姓名字母A
db.students.find({"name":/a/i}).pretty();
完整写法:
db.students.find({"name":{"$regex":/a/i}}).pretty();
这里“i”表示的意思:表示程序代码执行不区分大小写的操作,如果不加i是没有数据的。
如果要执行模糊查询的操作,严格来讲只需要编写一个关键字就可以。
3、正则操作之中除了可以查询出单个字段的内容之外,也可以进行数组数据的查询。
例:查询数组数据
db.students.find({"course":/
语?/}).pretty();
db.students.find({"course":/
语/}).pretty();
MongoDB 中的正则符号和之前的Java正则是有一些小差别的,不建议使用以前的一些标记,正则就将其应用在模糊数据查询上。