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

Jay*_*Jay 7 indexing unique sparse-matrix mongoengine

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

Ros*_*oss 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 },
        ],
    }
Run Code Online (Sandbox Code Playgroud)

  • 在上面的示例中,'types'键为索引指定了什么? (3认同)

Eld*_*ell 6

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

email = mongodb.EmailField(required=True, unique=True)
Run Code Online (Sandbox Code Playgroud)


小智 6

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

email = db.EmailField(sparse=True, unique=True, required=False)
Run Code Online (Sandbox Code Playgroud)