CouchDB Wiki on PUT operations के अनुसार।थोक प्रति दस्तावेज़ _rev मूल्य के बिना एक CouchDB डेटाबेस अद्यतन थोक?
मौजूदा दस्तावेज़ को अपडेट करने के लिए, आप एक पुट अनुरोध भी जारी करते हैं। इस मामले में, JSON बॉडी में _rev प्रॉपर्टी होनी चाहिए, जो कोचडीबी को पता चलेगा कि संपादन किस संशोधन पर आधारित है। यदि डेटाबेस में वर्तमान में संग्रहीत दस्तावेज़ का संशोधन मेल नहीं खाता है, तो 40 9 संघर्ष त्रुटि लौटा दी जाती है।
मेरा लक्ष्य एक bulk_docs अद्यतन प्रदर्शन करने के लिए है:
curl -X POST [domain]/[couch db name]/_bulk_docs -H "Content-type: application/json" -d @[some document].json
मेरे कार्यप्रवाह इस तरह है:
- मेरे डेटा एक Google दस्तावेज़ स्प्रैडशीट में है।
- मैं Mr. Data Converter
- मैं cURL का उपयोग (ऊपर शो के रूप में) में कॉपी करने और चिपकाने से JSON करने के लिए स्प्रेडशीट डेटा परिवर्तित/अद्यतन दस्तावेज
समस्या यह है कि पहली बार मैं नए दस्तावेज़ों को जोड़ने है जोड़ने के लिए, सब कुछ पूरी तरह से काम करता है, हालांकि अगली बार जब मैं एक ही दस्तावेज़ पोस्ट करता हूं, तो मुझे प्रत्येक दस्तावेज़ के लिए निम्न त्रुटि मिलती है:
... {"id": "28", "त्रुटि": "संघर्ष", "कारण ":" दस्तावेज़ अद्यतन संघर्ष। "} ...
क्या _rev संपत्ति सहित किसी भी मौजूदा दस्तावेज़ को अपडेट करने का कोई तरीका है?
अद्यतन हैंडलर डेटा अपडेट करने के लिए जाने का तरीका प्रतीत होता है। यह तेज़ होगा क्योंकि आपको प्रत्येक दस्तावेज़ को डाउनलोड करने, क्लाइंट पक्ष को मर्ज करने और इसे फिर से अपलोड करने की आवश्यकता नहीं है। इसके बजाय अपडेट हैंडलर आपके लिए नेटवर्क गतिविधि के 1/3 के साथ विलय कर सकता है! –
@ डॉब्सवंडर्मियर जो सार्वभौमिक नहीं है। चूंकि अद्यतन हैंडलर बैच ऑप्स का समर्थन नहीं करता है, यह प्रति अद्यतन/जारी रखने का एक अनुरोध है। यदि आपको एक साथ 2-4 से अधिक करने की आवश्यकता है, तो बैच ऑपरेशंस करें क्योंकि आमतौर पर परिस्थितियों के आधार पर 2-4 अनुरोध लेते हैं उदाहरण के लिए 10 दस्तावेज़ अपडेट करें। बेशक यदि आप 'new_edits" का उपयोग करते हैं: झूठी' आप बैच को 1 अनुरोध में जारी/प्रतिस्थापित कर सकते हैं, लेकिन जागरूक रहें, कि 'new_edits' [प्रतिलिपि द्वारा उपयोग किए जाने का इरादा है] (http://goo.gl/EFFofn)।एक दोष यह है कि यह संशोधन इतिहास को संरक्षित नहीं करता है, मुझे आश्चर्य है कि क्या यह प्रतिकृति के साथ हस्तक्षेप कर सकता है ... –
@DominykasMostauskis आह हाँ, अच्छा बिंदु। ओपी बैच डाउनलोड करना, नए मानों की गणना करना और बैच अपलोड करना चाहता है जो समग्र रूप से कम लेनदेन है। जब तक यह सब स्मृति में फिट बैठता है। –