2012-09-13 23 views
7

Tôi đang sử dụng mongoengine với bình. Tôi có một lớp db.Document được gọi là hồ sơ trong đó tôi muốn một trường được nullable và duy nhất, tôi hiểu cách để làm điều này là để làm cho một chỉ số của trường đó là cả hai thưa thớt = True và duy nhất = True, làm thế nào để tôi đi về việc này?cách tạo chỉ mục trong mongoengine là duy nhất = True và sparse = True

Trả lời

12

Bạn sẽ phải khai báo các chỉ số trong meta định nghĩa, ví dụ:

class BlogPost(Document): 
    date = DateTimeField(db_field='addDate', default=datetime.now) 
    category = StringField() 
    tags = ListField(StringField()) 

    meta = { 
     'indexes': [ 
      {'fields': ['-date'], 'unique': True, 
       'sparse': True, 'types': False }, 
     ], 
    } 
+0

cảm ơn rất nhiều – Jay

+0

hãy đánh dấu là đã trả lời! – Ross

+0

xin lỗi, nhưng làm thế nào để bạn làm điều đó? Tôi mới ở đây, cảm ơn – Jay

3

Trong trường hợp hạn chế duy nhất bạn có thể thiết lập nó với việc kê khai lĩnh vực như:

email = mongodb.EmailField(required=True, unique=True) 
Các vấn đề liên quan