MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Запитване за тригери за изтриване на MongoDB

Трябва да извлечете този документ по неговия ObjectID, което няма да е възможно на текущия възел, който проследявате oplog от защото до момента, в който сте получили операцията за изтриване от oplog , документът го няма. Което според мен означава, че имате два избора:

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

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да експортирам обект, който става достъпен само в асинхронно обратно извикване?

  2. Метеор $и с $или

  3. Spring данни с помощта на Neo4j и MongoDB

  4. намиране на документи за подмасив в meteor

  5. $lookup на няколко нива без $unwind?