创新互联建站是一家专业提供石楼企业网站建设,专注与成都网站制作、网站设计、成都h5网站建设、小程序制作等业务。10年已为石楼众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
与文本搜索不同,您不需要执行任何配置或命令就可以直接使用正则表达式。假设我们已经在名为 posts 的集合中插入了一个文档,如下所示:
> db.posts.insert( ... { ... "post_text": "enjoy the mongodb articles on bianchengbang", ... "tags": ["mongodb", "bianchengbang"] ... } ... )
下面的 regex 查询将搜索 post_text 字段中包含字符串“bianchengbang”的所有文档:
> db.posts.find({post_text:{$regex:"bianchengbang"}}).pretty() { "_id" : ObjectId("6041dfc3835e4aa734b591df"), "post_text" : "enjoy the mongodb articles on bianchengbang", "tags" : [ "mongodb", "bianchengbang" ] }
上面的查询也可以写成如下所示的样子:
> db.posts.find({post_text:/bianchengbang/}).pretty() { "_id" : ObjectId("6041dfc3835e4aa734b591df"), "post_text" : "enjoy the mongodb articles on bianchengbang", "tags" : [ "mongodb", "bianchengbang" ] }
若要在查询时不区分大小写,我们可以将 $options 参数的值设置为 $i,下面的命令可以查询 post_text 字段中包含“bianchengbang”的文档,且不区分大小写。
> db.posts.find({post_text:{$regex:"BianChengBang",$options:"$i"}}).pretty() { "_id" : ObjectId("6041dfc3835e4aa734b591df"), "post_text" : "enjoy the mongodb articles on bianchengbang", "tags" : [ "mongodb", "bianchengbang" ] }
我们还可以在数组字段上使用正则表达式来查找内容,这在实现标签时非常有用。假如要搜索所有以 b 开头的字段(例如 bian、biancheng、bianchengbang 等),可以使用如下所示的代码:
> db.posts.find({tags:{$regex:"b"}}).pretty() { "_id" : ObjectId("6041dfc3835e4aa734b591df"), "post_text" : "enjoy the mongodb articles on bianchengbang", "tags" : [ "mongodb", "bianchengbang" ] }
如果文档字段已建立索引,那么查询将使用索引值来匹配正则表达式,与使用正则表达式扫描整个集合相比,使用索引来查询数据的速度会更快。
如果正则表达式是前缀表达式,则所有匹配项均应以某个字符串字符开头。例如,如果正则表达式为 ^tut,则查询仅需要搜索以 tut 开头的那些字符串。
分享题目:MongoDB正则表达式
URL地址:http://www.mswzjz.com/qtweb/news4/183004.html
成都网站建设公司_创新互联,为您提供App开发、网站导航、网页设计公司、企业网站制作、网站改版、品牌网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联