Mongoengine unique_with

Я использую mongoengine с MongoDB. Мне нужно создать документ, в котором кортеж (merchant_id, order_id, event_type) должен быть уникальным ключом.

До сих пор я всегда имел дело с ограничением уникальности двумя полями. Итак, следующее работает -

merchant_id = StringField(required = True)
order_id = StringField(required = True, unique_with = 'merchant_id')

Теперь я пытаюсь сделать это для трех полей -

merchant_id = StringField(required = True)
order_id =  StringField(required = True)
event_type = StringField(
    required = True,
    unique_with = ['merchant_id', 'order_id'])

Но это не работает. Я не получаю сообщение об ошибке в модуле. Но если я введу данные как -

merchant_id = 'Merchant1'
order_id = 'Order1'
event_type = 'Event1'

, а затем попытаюсь добавить другие данные с теми же merchant_id и order_id , но с другим event_id , то получится ошибка о дублировании ключа.

Я также пробовал:

merchant_id = StringField(required = True)
order_id =  StringField(required = True)
event_type = StringField(
    required = True,
    unique_with = ('merchant_id', 'order_id'))
6
задан DhiaTN 22 December 2016 в 21:49
поделиться