باستخدام MongoDB انتهاء صلاحية المستندات بعد عدد محدد من الثواني في الانتقال
باستخدام فهارس TTL، يتيح لك MongoDB انتهاء صلاحية المستندات تلقائيًا بعد فترة محددة مدة. توضح هذه المقالة كيفية تحقيق ذلك في Go باستخدام برنامج التشغيل mongo-go-drive الرسمي.
باتباع وثائق MongoDB، يوضح الكود كيفية:
ومع ذلك، يعمل المثال المقدم بشكل صحيح، ولا تتعلق المشكلة بالكود.
] فهم سلوك فهرس TTL
تحدد المعلمةexperiAfterSeconds المدة بعد الحقل createAt عندما يجب اعتبار المستند منتهية الصلاحية. ومع ذلك، فإن حذف المستندات منتهية الصلاحية ليس فوريًا.
وفقًا لوثائق MongoDB:
"لا يضمن فهرس TTL حذف البيانات منتهية الصلاحية فور انتهاء الصلاحية. قد يكون هناك تأخير بين وقت انتهاء صلاحية المستند والوقت الذي يقوم فيه MongoDB بإزالة المستند من قاعدة البيانات. كل 60 ثانية. لذلك، قد تظل المستندات في المجموعة لمدة تصل إلى 60 ثانية بعد انتهاء صلاحيتها. علاوة على ذلك، إذا كانت قاعدة البيانات تحت تحميل كثيف، فقد يستغرق الأمر وقتًا إضافيًا لحذف جميع المستندات منتهية الصلاحية.
الحل
في مقتطف التعليمات البرمجية الخاص بك، تتوقع بعض المستندات التي سيتم حذفها بعد 5 ثوانٍ (استنادًا إلى خيارexperiAfterSeconds) ولكن انتظر ثوانٍ فقط بعد الإدراج للتحقق منها. لاختبار الوظيفة بشكل صحيح، يجب عليك إتاحة الوقت الكافي (عدة دقائق على الأقل) لتشغيل مهمة الخلفية وحذف المستندات منتهية الصلاحية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3