我正在使用 pymongo 并希望将索引从唯一更新为唯一且稀疏。两者似乎ensure_index
都create_index
不想更新已经存在的索引。我正在运行 mongo 2.2.0
In [1]: coll.index_information()
Out[1]:
{u'_id_': {u'key': [(u'_id', 1)], u'v': 1},
u'foo_1': {u'key': [(u'foo', 1)], u'unique': True, u'v': 1}}
In [2]: coll.ensure_index([('foo', 1)], unique=True, sparse=True)
In [3]: coll.index_information()
Out[3]:
{u'_id_': {u'key': [(u'_id', 1)], u'v': 1},
u'foo_1': {u'key': [(u'foo', 1)], u'unique': True, u'v': 1}}
In [4]: coll.drop_index('foo_1')
In [5]: coll.ensure_index([('foo', 1)], unique=True, sparse=True)
Out[5]: u'foo_1'
In [6]: coll.index_information()
Out[6]:
{u'_id_': {u'key': [(u'_id', 1)], u'v': 1},
u'foo_1': {u'key': [(u'foo', 1)], u'sparse': True, u'unique': True, u'v': 1}}
有任何想法吗?我不能完全按照我在生产数据库上所做的那样,只是删除索引并重新创建它。