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

Rah*_*hul 3 python zlib mongodb pymongo wiredtiger

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

storage:
  engine: wiredTiger
  wiredTiger:
    collectionConfig:
      blockCompressor: zlib
Run Code Online (Sandbox Code Playgroud)

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

db.createCollection( "test", {storageEngine:{wiredTiger:{configString:'block_compressor=zlib'}}} );
Run Code Online (Sandbox Code Playgroud)

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

from pymongo import MongoClient
client = MongoClient("localhost:27017")
db = client.mydb
Run Code Online (Sandbox Code Playgroud)

Pyn*_*hia 7

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

db.create_collection('test',
                     storageEngine={'wiredTiger':{'configString':'block_compressor=zlib'}})
Run Code Online (Sandbox Code Playgroud)

官方文档我们看到

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

...

**kwargs(可选):其他关键字参数将作为create collection命令的选项传递