mongodb中模糊查询/全文内容匹配--基于正则表达式

mongodb中模糊查询有两种方式,一种是全文检索,即对字段建立索引,使用$text进行全文匹配;另一种是使用正则表达式。

在多次测试后,发现正则表达式好用些,这里就主要介绍正则表达式

MongoDB 可以使用 $regex 操作符或者双斜杠(/ /)来设置匹配字符串的正则表达式。

全文检索需要先对字段建立索引,而正则表达式可以直接使用,不需要做任何配置,相对而言更方便。

db.users.insert({
   "name": "zhangsan,张三",
   "friends": [
      "lijiang",
      "小明"
   ]
})

还可以插入多条数据 

 

db.users.insertMany([
{
   "name": "zhangsan,张三",
   "friends": [
      "lijiang",
      "小明"
   ]
},
{
   "name": "LiSi,李四",
   "friends": [
      "XiaoHong",
      "小军"
   ]
},
{
   "name": "王五,WangWu",
   "friends": [
      "大明",
      "zhaoliu"
   ]
}
])

模糊查询(可支持中文)

使用  $regex

也可使用斜杠的方式:/  /

如果检索需要不区分大小写,我们可以设置 $options 为 $i。如果是斜杠的方式,则在最后一个斜杠后面加上字母i即可。

此外,不仅可以对value为字符串的值进行匹配,还可以对value为数组的内容进行匹配,如下:

在正则表示式中使用前缀表达式

加个^即可。如 /^a/ 表示匹配以a开头的值

$in和$nin操作符

$in表示包含

$nin表示不包含

注意:$nin右边的内容要写全,这里面不是模糊匹配!!不写全是查不到的

猜你喜欢

转载自blog.csdn.net/qq_40323256/article/details/113887509
今日推荐