在使用PyMongo的Python脚本中,使用行
为集合创建索引myCollection.create_index('Datetime', unique=True)
但是,这会在下次执行脚本时抛出错误,因为索引已经存在。
问题:在决定是否致电create_index
之前,有没有办法检查索引的存在?
答案 0 :(得分:11)
您可以使用index_information()
方法:
获取有关此集合索引的信息。
返回一个字典,其中键是索引名称(由返回值返回) create_index()),值是包含信息的字典 关于每个指数。
index_name = 'Datetime'
if index_name not in myCollection.index_information():
myCollection.create_index(index_name, unique=True)
还有list_indexes()
方法也可用于解决它,但输出格式不像index_information()
那样方便。
并且,有ensure_index()
方法,看起来正是您所询问的内容,但现在不推荐使用此方法。
答案 1 :(得分:5)
在PyMongo 3.6.0及更高版本中,如果索引已经存在并且不会抛出错误,则调用create_index
将不会重新创建索引。如果索引已经存在,则只会忽略索引创建。
答案 2 :(得分:0)
这可能有效:
<Window.Resources>
<local:TownsConverter x:Key="TownsConverter"/>
</Window.Resources>