MongoDB的模糊查询 *** 作(类关系型数据库的 like 和 not like)

MongoDB的模糊查询 *** 作(类关系型数据库的 like 和 not like),第1张

概述1.作用与语法描述 作用: 正则表达式是使用指定字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串 *** 作。MongoDB 使用 $reg 1.作用与语法描述

作用: 正则表达式是使用指定字符串来描述、匹配一系列符合某个句法规则的字符串。许多程序设计语言都支持利用正则表达式进行字符串 *** 作。MongoDB 使用 $regex  *** 作符来设置匹配字符串的正则表达式。

语法一

{ <fIEld>: { $regex: /pattern/,$options: 'options>' } }{ >: { $regex: 'pattern',1)">>: { $regex: /pattern/> } }

语法二

{ >: /pattern/> }

 

2.案例演示

假设MongoDB中存放了我们OrderService服务的消息信息,其数据如下:

(以下为演示所用到的9个文档)

{    "_ID" : ObjectID("5d305b1c4857fc49c0c14c81"),"order" : "QQ00001","data" : "\"<?xml version='1.0' enCoding='UTF-8'?>Response service=\\"OrderService\\"><head>ERR</head><ERROR>重复下单</ERROR></Response>\""},{    "_ID" : ObjectID("5d305b3b4857fc49c0c14c82"),"data" : "\"<?xml version='1.0' enCoding='UTF-8'?><=\\"OrderService\\"><head>OK</head><Body><OrderResponse filter_mmm=\\"2\\" destcity=\\"shenzheng\\" origincode=\\"QQ0003\\" /></Body></Response\""},{    "_ID" : ObjectID("5d305bd14857fc49c0c14c88"),1)">=\\\"zhongshan\\\" =\\"QQ0002\\" =\\"QQ0001\\" \""}

 

需求: 查询 data 字段 含有 字符 <head>OK</head>的文档

执行代码如下:

 db.dbtestregex.find({data:{ $regex:/<head>OK<\/head>/}}) 

查询代码中的 \ 为转移符,以下查询语句也是如此。

返回结果如下:

{    "_ID" : ObjectID("5d305bb74857fc49c0c14c87"),"order" : "QQ00003","data" : "\"<?xml version='1.0' enCoding='UTF-8'?><Response service=\\\"OrderService\\\"><head>OK</head><Body><OrderResponse filter_mmm=\\\"2\\\" destcity=\\\"shenzheng\\\" origincode=\\\"QQ0003\\\" /></Body></Response>\""},{    "_ID" : ObjectID("5d305bd14857fc49c0c14c88"}

上面的查询命令也可以改写成:

 db.dbtestregex.find({data:/<head>OK<\/head>/})

其查询结果是一样的,如下:

{    "_ID" : ObjectID("5d305bb74857fc49c0c14c87"),1)">\""}

 还可以写成:

db.dbtestregex.find({data:{ $regex:'head>OK<\/head>'}})

其实现功能一样。

3.类关系型数据库中的 not like 功能实现

反向查询虽然不常见,但也是我们DBA必须的。下面我们做一个案例演示,看看在MongoDB中,怎么实现not like 功能的查询。

需求 查询data 字段中不含  <head>OK</head>的文档

执行脚本如下:

  db.dbtestregex.find({data:{ $not: /<head>OK<\/head>/ }})  

返回的文档如下;

{    "_ID" : ObjectID("5d305b1c4857fc49c0c14c81"}

 

更多内容可参照官方文档  https://docs.mongodb.com/manual/reference/operator/query/regex/#op._S_regex

总结

以上是内存溢出为你收集整理的MongoDB的模糊查询 *** 作(类关系型数据库的 like 和 not like)全部内容,希望文章能够帮你解决MongoDB的模糊查询 *** 作(类关系型数据库的 like 和 not like)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1151963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存