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

相关推荐
AbsoluteLogic3 分钟前
Python——彻底明白Super() 该如何使用
python
小猪咪piggy6 分钟前
【Python】(4) 列表和元组
开发语言·python
静听山水9 分钟前
StarRocks表模型详解
数据库
静听山水15 分钟前
Redis核心数据结构-Set
数据结构·数据库·redis
墨理学AI23 分钟前
一文学会一点python数据分析-小白原地进阶(mysql 安装 - mysql - python 数据分析 - 学习阶段梳理)
python·mysql·数据分析
数研小生30 分钟前
亚马逊商品列表API详解
前端·数据库·python·pandas
独好紫罗兰31 分钟前
对python的再认识-基于数据结构进行-a005-元组-CRUD
开发语言·数据结构·python
洛豳枭薰31 分钟前
MySQL 并行复制
数据库·mysql
无尽的沉默32 分钟前
Redis下载安装
数据库·redis·缓存
jianghua00143 分钟前
Python中的简单爬虫
爬虫·python·信息可视化