سؤال

أعتقد أن القراءة في مكان ما عندما يتم عرض طريقة العرض "الخريطة" يتم تشغيلها فقط عبر المستندات التي تمت إضافتها منذ آخر مرة طلب فيها؟ كيف يتم تحديد هذا؟ اعتقدت أنني رأيت شيئا عن رقم التسلسل. هل هذا شيء يمكنك الوصول إليه؟ ليس جزءا من uuid زائدة على حقل _REV هو؟

بأي طريقة لإجبار "recalc" من العرض بأكمله (عبر جميع السجلات)؟

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

المحلول

القسم حول عرض الفهارس في محة فنية هو دليل كبير لهذا.

يستخدم View Builder معرف تسلسل قاعدة البيانات لتحديد ما إذا كان مجموعة العرض محدثة بالكامل مع قاعدة البيانات. إذا لم يكن الأمر كذلك، يقوم مشغل العرض بفحص جميع مستندات قاعدة البيانات (في ترتيب متسلسل معبأ) منذ التحديث الأخير. تتم قراءة المستندات بالترتيب الذي تحدث في ملف القرص، مما يقلل من تردد وتكلفة رأس القرص يسعى.
مع فحص المستندات، تتم إزالة قيم صفهم السابقة من فهارس العرض، إذا كانت موجودة. إذا تم تحديد المستند بواسطة وظيفة عرض، فسيتم إدراج نتائج الوظيفة في العرض كصف جديد.

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

لا ينبغي أن تكون هناك حاجة لإعادة بناء / تجديد وجهات نظرك لأنها ستتحدث تدريجيا أثناء تعديل المستندات (لاحظ أنه لن يقوم بتحديث العرض حتى تستخدمه). مع قبعة قالت طريقة واحدة (وأنا متأكد من أن هناك طريقة أفضل) ستكون لإزالة وثيقة التصميم التي تصف طريقة العرض وإدخالها مرة أخرى، كما لم يكن هناك مستند تصميم مختلف (تقريبا) من مستند عادي.

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