कुछ ऐप-साइड लॉजिक के बिना आपको एक अपडेट का उपयोग करना संभव नहीं है। ध्यान दें कि एक विशेषता के रूप में upsert इस विशिष्ट समस्या के लिए प्रासंगिक नहीं है जब तक कि आप स्वचालित रूप से नए विजेट दस्तावेज़ नहीं बनाना चाहते हैं यदि प्रदान किए गए नाम के साथ कोई मौजूद नहीं है।
आप जिस समस्या का सामना कर रहे हैं वह यह है कि कोई कार्यक्षमता नहीं है जो आपको सरणी तत्व के अस्तित्व के आधार पर दो अलग-अलग अपडेट करने की अनुमति देती है। आपके केवल दो विकल्प हैं:
- आइटम ढूंढें, प्रासंगिक संपत्तियों के अस्तित्व का निर्धारण करें, अपने नए के साथ एक उपयुक्त अपडेट संकलित करें या गुणों को बदलें और इसे निष्पादित करें। यह महत्वपूर्ण नकारात्मक पक्ष के साथ आता है कि यह एक समवर्ती सुरक्षित विधि नहीं है। दूसरे शब्दों में, यदि दो वेब सेवाएं एक ही समय में ऐसा करने का प्रयास करती हैं तो एक-दूसरे के परिवर्तनों को अधिलेखित कर सकती है।
- विजेट गुणों को एम्बेड करने के बजाय शीर्ष स्तरीय दस्तावेज़ बनाएं। आप जो चाहते हैं उसे करने के लिए आपको अप्सर्ट का उपयोग करने की अनुमति देता है। स्पष्ट रूप से नकारात्मक पक्ष यह है कि स्कीमा डिज़ाइन के मामले में यह बहुत अच्छा विकल्प नहीं है। उदाहरण के लिए, यदि आप कोई विजेट प्राप्त करते हैं, तो आपको स्वचालित रूप से सभी गुण नहीं मिलेंगे।