Как да добавя wiredTiger в pymongo на ниво колекция?

Опитвам се да активирам компресирането на данни в MongoDB 3.0 с помощта на двигателя wiredTiger. Компресията работи добре на ниво сървър, където мога да осигуря глобален алгоритъм за компресия за всички колекции в конфигурационния файл на mongo сървъра по следния начин:

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

Искам да активирам това компресиране на ниво колекция, което може да стане с помощта на кода по-долу в обвивката на mongodb:

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

Как мога да направя това с помощта на драйвера pymongo?

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

person Rahul    schedule 18.12.2015    source източник
comment
пробвал ли си db.create_collection('test', storageEngine={'configString':'block_compressor=zlib'}) ?   -  person Pynchia    schedule 18.12.2015
comment
Мда. Работи, както споменах във въпроса. Искам да направя същото, като използвам pymongo, а не mongo shell.   -  person Rahul    schedule 18.12.2015
comment
кодът, който написах, е код на python за драйвера на pymongo. Вижте тук   -  person Pynchia    schedule 18.12.2015
comment
Благодаря проработи. Не съм виждал метода create_collection преди. Извинете за объркването. db.create_collection('test', storageEngine={'wiredTiger':{'configString':'block_compressor=zlib'}})   -  person Rahul    schedule 18.12.2015
comment
да, наистина изглеждаше малко странно като параметър. И аз също написах част от него, съжалявам. Добавих го като отговор, моля, приемете го. Благодаря ти :)   -  person Pynchia    schedule 18.12.2015


Отговори (1)


Като се има предвид, че работи чрез обвивката на Mongo, предайте същите параметри чрез pymongo:

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

от официалните документи ние виж това

create_collection(name, codec_options=Няма, read_preference=Няма, write_concern=Няма, read_concern=Няма, **kwargs)

...

**kwargs (по избор): допълнителни аргументи на ключови думи ще бъдат предадени като опции за командата за създаване на колекция

person Pynchia    schedule 18.12.2015
comment
как проверявате коя машина за съхранение се използва чрез pymongo? - person vgoklani; 30.10.2017
comment
@vgoklani можете да го проверите директно в mongo shell, като използвате db.test.stats(), той трябва да покаже wiredTiger изход. официални документи - person Rendrum; 08.02.2018