python mongodb 查询忽略大小写

python 复制代码
import pymongo
import random
import string
from pymongo.collation import Collation
random.seed(10)
letters = string.ascii_lowercase
upper = string.ascii_uppercase


class MongoDBServer():
    def __init__(self,database,collation) -> None:
        self.client = pymongo.MongoClient('mongodb://ellis:ellischen@192.168.214.133:32000/')
        self.database = self.client[database]
        

        if collation not in self.database.list_collection_names():
            self.database.create_collection(collation,
                                    collation=Collation(locale='en'))
        
        
        self.colleceion = self.database[collation]
        
    def insert_many(self,documents):
        self.colleceion.insert_many(documents)


server = MongoDBServer('test','collation')

documents= []

for i in range(10):
    rand_letters = random.choices(letters,k=2)
    upper_letters = random.choices(upper,k=2)
    value = {"name":''.join(rand_letters)+''.join(upper_letters),"age":100}
    documents.append(value)



server.insert_many(documents)

print(server.client['test']['collation'].find({"name":"ADYH"}).collation({ "locale": "en", "strength": 1 }).explain()['executionStats'])

最主要的要先创建collection并指定collation,查询时候也带上这个参数

关于这个参数的解释
https://pymongo.readthedocs.io/en/stable/examples/collations.html

相关推荐
徐_三岁4 分钟前
Python 入门学习
java·python·学习
DemonAvenger6 分钟前
Redis集群架构详解:从单机到分布式的扩展之路
数据库·redis·性能优化
海上飞猪9 分钟前
【Python】基础数据类型-List
python
CHANG_THE_WORLD13 分钟前
Python 文件操作详解与代码示例
开发语言·数据库·python
TT哇14 分钟前
关闭外键约束检查
数据库·sql·oracle
卿雪16 分钟前
Redis 数据持久化:RDB和 AOF 有什么区别?
java·数据库·redis·python·mysql·缓存·golang
Chasing Aurora21 分钟前
Python后端开发之旅(二)
开发语言·python·语言模型·langchain·ai编程
闲人编程26 分钟前
微服务API网关设计模式
python·缓存·微服务·设计模式·系统安全·api·codecapsule
计算机毕设MTU775728 分钟前
999+套计算机毕业设计——基于HTML5+CSS的图书馆借阅管理系统的设计与实现(含源码+部署教程+数据库)
数据库·spring boot·课程设计·借阅管理系统·图书馆
2501_9167665431 分钟前
MySQL 数据库与 SQL 语言介绍
数据库·sql·mysql