Я использую 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'))