MongoDB模糊查询有2种实现方式,一种是:like,一种是正则实现,下面分别详解2种MongoDB模糊查询。
MongoDB模糊查询like
使用like模糊查询,语法:
db.users.find({name: /mikechen/});
采用:“/ /”,中间的就是模糊查询的内容,比如:“/ mikechen /”,查询名字包含:mikechen的内容。
如果用MySQL来对比就更清楚,类似:
select *from users where name like ‘%mikechen%’;
如果要模糊查询以什么开头,语法:
db.users.find({name: /^mikechen/});
只需在模糊查询内容前,加“^”这个符号。
如果要模糊查询以什么结尾,语法:
db.users.find({name: /mikechen^/});
只需在模糊查询内容后,加“^”这个符号即可。
mongodb模糊查询正则方式
也可以使用正则表达式的方式,来实现MongoDB模糊查询。
语法:
{ < field >: { $ regex : / pattern / , $ options : ‘’ } }
常见的正则表达式:
.点号:在正则表达式中是一个通配符,它代表所有字符和数字;
*号:表示前面的匹配符出现>=0次;
+号:表示前面的匹配符出现>=1次;
?号:表示前面的匹配符出现<=1次
{666}:表示前面的匹配符出现666次
{666,888}:表示前面的匹配符出现666~888次
^:匹配开头;
$:匹配结尾;
示例:
db.users.find({"name":{ $regex:/mikechen/ }})
名字模糊查询包含:mikechen的内容。