Что вам нужно сделать для вывода index_information(), чтобы его можно было повторно импортировать с помощью create_index() или create_indexes()?С помощью PyMongo как импортировать индексы с помощью create_index(), которые были экспортированы с помощью index_information()?
>>> from pymongo import MongoClient
>>> client = MongoClient("mongodb://host1")
>>> db = client.MYDB
>>> collection = db.MYCOLLECTION
>>> index = db.provisioning.index_information()
>>> index
{u'_id_': {u'ns': u'MYDB.MYCOLLECTION', u'key': [(u'_id', 1)], u'v': 1}, u'Name_1': {u'unique': True, u'key': [(u'Name', 1)], u'v': 1, u'ns': u'MYDB.MYCOLLECTION', u'background': False}, u'MongoType_1': {u'key': [(u'MongoType', 1)], u'ns': u'MYDB.MYCOLLECTION', u'background': False, u'v': 1}}
>>> client2 = MongoClient("mongodb://host2")
>>> db2 = client2.MYDB
>>> collection2 = db2.MYCOLLECTION
>>> collection2.create_index(index)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/site-packages/pymongo/collection.py", line 1161, in create_index
keys = helpers._index_list(keys)
File "/usr/lib64/python2.6/site-packages/pymongo/helpers.py", line 55, in _index_list
raise TypeError("if no direction is specified, "
TypeError: if no direction is specified, key_or_list must be an instance of list
>>> collection2.create_indexes(index)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/site-packages/pymongo/collection.py", line 1046, in create_indexes
raise TypeError("indexes must be a list")
TypeError: indexes must be a list
Согласно [документации PyMongo в] (http://api.mongodb.org/python /current/api/pymongo/collection.html?highlight=create_index#pymongo.collection.Collection.create_index) методы create_index или create_indexes требуют наличия одного ключа или списка пары ключей, направлений. Вы можете перебирать «индекс» в коде и формировать список, который может быть присвоен методу create_index –
Как это работает? Можете ли вы привести мне пример? >>> за товар в index.iteritems(): ... collection2.create_index (пункт) ... Traceback (самый последний вызов последнего): Файл "", строка 2, в файла "/usr/lib64/python2.6/site-packages/pymongo/collection.py", строка 1162, в create_index name = kwargs.setdefault ("name", helpers._gen_index_name (ключи)) Файл "/ usr/lib64/python2.6/site-packages/pymongo/helpers.py ", строка 41, в _gen_index_name return _UUNDER.join ([% s_% s"% item для элемента в ключах]) ТипError: недостаточно аргументов для format string –
perdurabo93