سؤال

أحتاج إلى الحصول على مستند وتغيير/إدراج/حذف بعض الحقول وإعادتها.

ال "يضع" يتطلب الإجراء المراجعة الحالية للمستند، ولكن في nano لا يمكنني العثور على أي وظيفة تأخذ المراجعة كمعلمة وتقوم بإدراج المستند مرة أخرى في قاعدة البيانات.

كيف يمكنني أن أفعل هذا بالنانو؟

هل كانت مفيدة؟

المحلول

ملحوظة:هذه هي الخوارزمية العامة، وهي ليست خاصة بأي مكتبة منذ ذلك الحين نانو insert() الطريقة لا تقدم أي شيء آلي لتحديث المستندات.

احصل على المستند، واحفظ المراجعة الحالية، وقم بتطبيق التغييرات وحاول إرسال المستند برقم المراجعة المحفوظة.

تأكد من التعامل مع استجابات تعارض 409 المحتملة التي تحدث عندما يتم تعديل المستند في هذه الأثناء.

في هذه الحالة، يجب عليك إعادة جلب المستند وحفظ رقم المراجعة وإعادة تطبيق التغييرات ثم محاولة إرساله مرة أخرى مع المراجعة الجديدة.

إذن هذه هي الخوارزمية:

  1. الحصول على الوثيقة
  2. احفظ _rev
  3. تطبيق التغييرات
  4. حاول إرسال مستند محدث مع _rev المحفوظ
  5. انتقل إلى الخطوة 1 في حالة 409

تفحص ال قسم PUT الخاص بـ CouchDB HTTP Document API وCouchDB النسخ المتماثل والصراعات صفحة wiki لمزيد من المعلومات حول هذا الموضوع.قد تجد أيضا كيفية تحديث مستند باستخدام Nano (عميل CouchDB لـ Node.js) متعاون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top