摘要:工作中偶尔会根据字符串字段的长度来筛选一些数据,这时候可能会用到正则表达式,也可以用的,正则表达式在不同的语言中,正确写法又有所差异,特此记录一下。
工作中偶尔会根据字符串字段的长度来筛选一些数据,这时候可能会用到正则表达式,也可以用mongodb的$where,正则表达式在不同的语言中,正确写法又有所差异,特此记录一下。
假如查找comment字段字符串长度大于10的数据,mongodb命令行写法如下:
$where写法:
find({"comment":{"$exists":true},"$where":"this.comment.length>10"})
正则表达式写法:
find({"comment":{"$regex":/^.{10,}$/}})
go语言中写法如下:
$where写法:
collection.Find(bson.M{"comment": bson.M{"$exists": true}, "$where": "this.comment.length > 10"})
正则表达式写法:
collection.Find(bson.M{"comment": bson.M{"$exists": true, "$regex": bson.RegEx{`^.{10,}$`, ""}}})
其他条件正则:
^.{n,m}$ n <= 长度 <= m
^.{n}$ 长度 = n
这个长度是字符的长度,比如"正则表达式"长度就是5
至于查找性能方面,网上说正则比$where性能好,数据量不大的情况下简单测试,确实是正则查找性能好一点,后面有时间进行深一步的研究看看
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/19509.html
摘要:如果删除所有用替换其他写了一个和结合的数据查询服务细节可点击链接到查看 1.系统环境 Golang:go version go1.10.3 darwin/amd64 OS:MacOS MongoDB: version: 3.4.4 2.Golang使用MongoDB 使用:gopkg.in/mgo.v2 获取包:go get gopkg.in/mgo.v2 引入:impor...
摘要:准备数据结构这个以对一个简单的通讯录进行插入查询更新删除记录为例,中包含和两个字段下载还没出官方的驱动包,是现在比较流行的第三方包,能找到的相关资料也比较多。准备实现对的增删改查操作,先想了下怎么写测试案例。查找,通过查找该条记录。 环境声明:go version go1.11MongoDB server version 4.0.3 背景 这是我第一次接触golang和MongoDB,...
摘要:在这里谈一谈实践过程中遇到的问题,基础的用法不再说明了,可以自行百度。一般传入的参数为。当然中的聚合命令不止这些,用法大同小异如果要实现一些高级功能,的基本命令满足不了你,可能就要使用这个了。 前言 最近在项目中使用mongodb进行简单的数据分析,在使用mongodb驱动mgo时遇到一些问题,比如在mongodb中执行命令成功,到了mgo中就执行失败。在这里谈一谈实践过程中遇到的问题...
摘要:搭建服务器采用搭建,可参考读模式的读模式共有五种在主节点上进行所有的读操作优先在主节点上进行读操作,如果主节点不可用,再从从节点操作。 Replica Sets搭建 服务器采用Replica Sets搭建,可参考Deploy a Replica Set 读模式 Mongod的读模式共有五种: primary. 在主节点上进行所有的读操作 primaryPreferred. 优...
摘要:没有类这一概念,对于变量的捆绑都是由键值对形式的结构体实现的。在做记录的查询时,需要新建一个同类型的结构体或结构体数组,然后执行操作,如果参数为空,则返回全部记录如果你熟悉的操作,可以看出,这样的操作与直接在内操作几乎相同。 go没有类这一概念,对于变量的捆绑都是由键值对形式的结构体(struct)实现的。这对同样是以键值对形式存储的mongodb以及json都非常友好。所以在go中,...
阅读 2487·2023-04-25 17:27
阅读 1800·2019-08-30 15:54
阅读 2351·2019-08-30 13:06
阅读 2948·2019-08-30 11:04
阅读 719·2019-08-29 15:30
阅读 678·2019-08-29 15:16
阅读 1714·2019-08-26 10:10
阅读 3578·2019-08-23 17:02