मैं मोंगोडेन के साथ मोंगोएन्गिन का उपयोग कर रहा हूं। मुझे एक दस्तावेज़ बनाना है जिसमें tuple (merchant_id, order_id, event_type) एक अनूठी कुंजी होनी चाहिए।Mongoengine unique_with
अभी तक, मैंने हमेशा दो क्षेत्रों तक सीमित विशिष्टता के साथ निपटाया है। तो निम्नलिखित works-
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'))
मुझे मिल गया क्या समस्या थी। ऐसा लगता है कि एक बार आपका संग्रह बनने के बाद, आप अद्वितीय कुंजी नहीं बदल सकते हैं। तो पहले विशिष्टता दो क्षेत्रों में थी और बाद में मैंने इसे तीन क्षेत्रों में बदल दिया। तो यह पहली कुंजी परिभाषित कर रहा था। प्रभाव लेने के लिए परिभाषित नवीनतम कुंजी के लिए, ड्रॉपकोलेक्शन() का उपयोग करके संग्रह को पूरी तरह से छोड़ना होगा। फिर यह काम करता है। – Siddharth