我使用pymongo並希望將索引從唯一更新爲唯一且稀疏。 ensure_index
和create_index
似乎都不想更新已存在的索引。我正在運行mongo 2.2.0更新pymongo中的現有索引
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}}
任何想法?我不能完全按照我在生產數據庫上所做的操作,只是刪除索引並重新創建它。
如果沒有其他選擇,並且您在生產中運行副本或分片,那麼您可以考慮使用以下命令構建:http://docs.mongodb.org/manual/tutorial/build-indexes-on-replica-sets/ #procedure 所以,你可以刪除輔助索引,並建立與稀疏真正的相同。這應該很好。 – 2013-05-09 02:42:34