python - 如何在集合级别的 pymongo 中添加 wiredTiger?

标签 python mongodb pymongo zlib wiredtiger

我正在尝试使用 wiredTiger 引擎在 MongoDB 3.0 中启用数据压缩。压缩在服务器级别工作正常,我可以为 mongo 服务器配置文件中的所有集合提供全局压缩算法,如下所示:

storage:
  engine: wiredTiger
  wiredTiger:
    collectionConfig:
      blockCompressor: zlib

我想在集合级别启用此压缩,这可以通过在 mongodb shell 中使用以下代码来完成:

db.createCollection( "test", {storageEngine:{wiredTiger:{configString:'block_compressor=zlib'}}} );

如何使用 pymongo 驱动程序执行此操作?

from pymongo import MongoClient
client = MongoClient("localhost:27017")
db = client.mydb

最佳答案

鉴于它通过 Mongo shell 工作,通过 pymongo 传递相同的参数:

db.create_collection('test',
                     storageEngine={'wiredTiger':{'configString':'block_compressor=zlib'}})

来自 official docs我们看到了

create_collection(name, codec_options=None, read_preference=None, write_concern=None, read_concern=None, **kwargs)

...

**kwargs (optional): additional keyword arguments will be passed as options for the create collection command

关于python - 如何在集合级别的 pymongo 中添加 wiredTiger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34356121/

相关文章:

python - 将电场和磁场应用到自由粒子的二维模拟中

mongodb - Spring boot/mongo 不会使用索引注释创建索引

python - 按日期和时间查询存储在 MongoDB 中的数据

python - 如何使用 python 的plotlyexpress 将多个图表添加到单个选项卡

python - 在标准化训练数据后使用 sklearn 预测新数据

mongodb - MongoClient 连接到多个主机来处理故障转移?

mongodb - 蒙哥 : count the number of word occurrences in a set of documents

Python OOP : how to share a MongoDB connection with all classes

python - 使用生成器迭代 Mongo 中的大型集合

python - 如何让用户在kivy中选择文件作为背景图片?