Pymongo index索引相關操做總結

簡單總結一下pymongo中與index操做相關一些函數, 經常使用的有:python

  • create_index
  • drop_index
  • index_information

其中最主要的是create_index, 能夠用它來爲mongo的collection創建索引。
如下操做一些簡單的例子,代碼以下:web

>>>import pymongo as pm
>>>client = pm.MongoClient('mongodb://user:password@127.0.0.1:27017, ssl=True, ssl_ca_certs='/tmp/mongo_local.pem')
>>>db = client['my_db']
>>>collection = db['my_collection']
#list all index related methods
>>>print([x for x in dir(collection]) if 'index' in x)
#['Collection__create_index', 'create_index','create_indexes','drop_index','drop_indexes',\ # 'ensure_index','index_information','list_indexes','reindex']
#create a index on attr. x
>>>collection.create_index([('x',1)], unique = True, background = True)
#get more help using help method
>>>help(collection.create_index)
#show index information
collection.index_infomation()
#{ 
# '_id_': {'key' ['_id',1)], 'ns':'my_db.my_collection', 'v':1},
# 'x_1' : { 'unique':True, 'key': [('x',1)], 'ns':'my_db.my_collection', 'v':1}
#}
#drop an index by index specifier
>>>collection.drop_index([('x',1)])
#drop an index by index name
>>>#collection.drop_index('x_1')
#WARN: if an index is create with option name specified, it can only be dropped by name
>>>collection.create_index([('x',1)], name = 'idx_x')
>>>collection.drop_index('idx_x')

create_index函數也能夠使用多個字段建立索引,例如mongodb

>>>collection.create_index([('x',1),('y',1)])

語法中(‘x’,1), x 值爲要建立的索引字段名,1 爲指定按升序建立索引,也能夠用pymongo.ASCENDING代替。若是你想按降序來建立索引,則指定爲 -1 或 pymongo.DESCENDING.數據庫

在使用create_index()建立索引時,也可指定特定的參數(options),經常使用可選參數以下:數組

參數名 類型 描述
background Boolean 建索引過程會阻塞其它數據庫操做,background可指定之後臺方式建立索引,即增長 「background」 可選參數。 「background」 默認值爲False。
unique Boolean 創建的索引是否惟一。指定爲True來建立惟一索引。默認值爲False. 默認狀況下,MongoDB在建立集合時會生成惟一索引字段_id。
name string 索引的名稱。若是未指定,MongoDB的經過鏈接索引的字段名和排序順序生成一個索引名稱。例如create_index([(‘x’,1)]在不指定name時會生成默認的索引名稱 ‘x_1’
expireAfterSeconds integer 指定一個以秒爲單位的數值,完成 TTL設定,設定集合的生存時間。須要在值爲日期或包含日期值的數組的字段的建立。
相關文章
相關標籤/搜索