如何用pymongo创建索引?

如何使用pymongo来创建索引?以及如何显示已经创建的索引?

喜欢这个问题 | 分享 | 新建回答

回答

冯纪忠雄

Jan 7, 2019
1 赞

使用pymongo创建单个字段的索引,可利用ensure_index方法create_index方法,两者用法一样,这里以create_index为例,注意create_index方法是指定集合collection的方法:

>>> my_db.my_collection.create_index("mob")  # 为mob字段创建升序索引


上述操作等价于:

>>> my_db.my_collection.create_index( [("mob", pymongo.ASCENDING)] )


上述操作不一样的是,可以同时创建不只一个索引,例如:

>>> my_db.my_collection.create_index( [("mob", pymongo.ASCENDING), ("city", pymongo.DESCENDING)] )


备注,pymongo.ASCENDING等于整数1,代表升序排列,因此,也可以直接用1来代替;而pymongo.DESCENDING等于整数-1,代表降序排列,也可以直接使用-1来代替。

>>> my_db.my_collection.create_index( [("mob", 1), ("city", -1)] )


更详细关于pymongo创建索引的方法,请参阅官方文档



至于显示指定集合所有已创建的索引,可如下:

>>> my_db.my_collection.index_information()

{u'_id_': {u'key': [(u'_id', 1)]},
u'mob_1': {u'unique': True, u'key': [(u'mob', 1)]}}