我正在開發一個使用Flask和MongoDB的Web應用程序。我使用(Flask-)MongoKit來定義一個模式來驗證我的數據。mongokit索引不起作用
在我的數據庫中,有一個名爲「users」的集合(見下文),其中包含一個「email」字段。我嘗試在MongoKit文檔(http://namlook.github.com/mongokit/indexes.html)中指定的字段上創建唯一索引。但是,當我通過MongoDB客戶端shell檢查收集索引時,根本沒有索引「email」。
我發現在網上有一個類似的問題:「唯一索引不起作用」(https://github.com/namlook/mongokit/issues/98)
是否有人有任何想法,爲什麼它不工作?
用戶採集:
@db.register
class User(Model):
__collection__ = 'users'
structure = {
'first_name': basestring,
'last_name': basestring,
'email': basestring,
'password': unicode,
'registration_date': datetime,
}
required_fields = ['first_name', 'last_name', 'email', 'password', 'registration_date']
default_values = {
'registration_date': datetime.utcnow,
}
# Create a unique index on the "email" field
indexes = [
{
'fields': 'email', # note: this may be an array
'unique': True, # only unique values are allowed
'ttl': 0, # create index immediately
},
]
db.users.getIndexes()輸出:
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "youthmind.users",
"name" : "_id_"
},
]
請注意,我也嘗試沒有 'TTL':0,和我能夠創建一個索引使用以下代碼段:
db.users.create_index('email', unique=True)
我覺得這個直接使用pymongo Connection對象。
在此先感謝您的幫助。
謝謝!這幫助了我。 – harry