3

我正在尝试使用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
4

1 回答 1

9

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

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

官方文档中我们看到

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

...

**kwargs(可选):额外的关键字参数将作为创建集合命令的选项传递

于 2015-12-18T14:16:51.193 回答