7

フラスコでmongoengineを使用しています。profile という名前の db.Document クラスがあり、フィールドを null 可能で一意にする必要があります。これを行う方法は、sparse=True と unique=True の両方であるそのフィールドのインデックスを作成することだと理解しています。これを行うには?

4

3 に答える 3

17

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 },
        ],
    }
于 2012-09-13T13:17:32.897 に答える
8

一意の制約の場合、フィールド宣言で次のように設定できます。

email = mongodb.EmailField(required=True, unique=True)
于 2013-03-24T19:18:00.430 に答える
4

Field パラメーターで直接言及できます。例:

email = db.EmailField(sparse=True, unique=True, required=False)
于 2018-06-09T08:17:56.633 に答える