pymongo处理正则表达式的情况

在python里使用pymongo处理mongodb数据库,在插入或者查询的时候,我们有时需要使用操作符号,如set,in,

具体操作符的可以参考  https://docs.mongodb.com/manual/reference/operator/query/

需求:需要用到正则表达式 来插入 或查询,如何操作?

1.首先要了解一下,mongodb里面的正则表达式怎么用

参考:https://docs.mongodb.com/manual/reference/operator/query/regex/

使用如下语法:

{ <field>: { $regex: /pattern/, $options: '<options>' } }
{ <field>: { $regex: 'pattern', $options: '<options>' } }
{ <field>: { $regex: /pattern/<options> } }

或者

{ <field>: /pattern/<options> }

当然option的含义是对正则表达式的一种选择,有

i  不区分大小写

m  包含锚的模式(即起始为 ^,结束为 $)

x   扩展

s   允许.点字符

详细的参考官网,这只是很简单的介绍

2.在pymongo里如何使用

mongodb默认使用的是bson数据,所以要在python里转换为该格式的数据

import bson

然后参照官网教程:http://api.mongodb.com/python/current/api/bson/regex.html

>>> pattern = re.compile('.*')
>>> regex = Regex.from_native(pattern)
>>> regex.flags ^= re.UNICODE
>>> db.collection.insert({'pattern': regex})

这里注意一下,Regex是bson的类,可以导入

我的实例: 

    for collection in col_list:
        pattern = re.compile(time.strftime('%Y-%m-%d'))
        regex = bson.regex.Regex.from_native(pattern)
        regex.flags ^= re.UNICODE
        for item in db[collection].find({"insert_time":regex}):
            for j in item['value']:
                ...

 

posted @   dahu1  Views(4367)  Comments(0Edit  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示