如何在mongoengine中创建一个唯一的索引= True和sparse = True

时间:2012-09-13 10:13:37

标签: indexing unique mongoengine sparse-matrix

我正在使用mongoengine和烧瓶。我有一个名为profile的db.Document类,其中我希望一个字段可以为空并且是唯一的,我理解这样做的方法是使该字段的索引既稀疏=真又唯一=真,我该怎么做这样做呢?

3 个答案:

答案 0 :(得分:13)

您必须在meta定义中声明索引,例如:

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 },
        ],
    }

答案 1 :(得分:6)

如果是唯一约束,您可以使用字段声明将其设置为:

email = mongodb.EmailField(required=True, unique=True)

答案 2 :(得分:1)

我们可以在Field参数中直接提及它。示例:

email = db.EmailField(sparse=True, unique=True, required=False)