Трябва да извлечете този документ по неговия ObjectID, което няма да е възможно на текущия възел, който проследявате oplog
от защото до момента, в който сте получили операцията за изтриване от oplog
, документът го няма. Което според мен означава, че имате два избора:
- Уверете се, че всички изтривания са предшествани от операция за актуализиране, която ви позволява да видите необходимите полета на документа преди изтриването (това ще направи изтриванията по-скъпи, разбира се)
- Изпълнете вторично с подчинено забавяне и след това потърсете този възел за документа, който е бил изтрит (или директно, или чрез използване на тагове ).
За номер 2 проблемът е в забавянето, което е достатъчно дълго, за да гарантира, че можете да извлечете документа, и достатъчно кратко, за да сте сигурни, че получавате актуална версия на документа. Освен ако не добавите версия към документа като проверка (което след това става подобно на опция 1, вероятно бихте искали да актуализирате версията преди изтриване), това трябва да е по същество оптимистично решение с най-добри усилия.