MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapytanie o wyzwalacze usuwania MongoDB

Musisz pobrać ten dokument według jego ObjectID, co nie będzie możliwe w bieżącym węźle, który śledzisz w oplog od ponieważ do czasu otrzymania operacji usuwania z oplog , dokument zniknął. Co moim zdaniem oznacza, że ​​masz dwie możliwości:

  1. Upewnij się, że wszystkie usunięcia są poprzedzone operacją aktualizacji, która pozwala zobaczyć wymagane pola dokumentu przed usunięciem (oczywiście spowoduje to, że usuwanie będzie droższe)
  2. Uruchom pomocniczy z opóźnieniem modułu podrzędnego a następnie zapytaj ten węzeł o dokument, który został usunięty (bezpośrednio lub za pomocą tagi ).

W przypadku numeru 2 problemem jest opóźnienie, które jest wystarczająco długie, aby zagwarantować, że możesz pobrać dokument, i wystarczająco krótkie, aby upewnić się, że otrzymujesz aktualną wersję dokumentu. O ile nie dodasz kontroli wersji do dokumentu (która staje się wtedy podobna do opcji 1, prawdopodobnie chcesz zaktualizować wersję przed usunięciem), będzie to zasadniczo optymistyczne, najlepsze rozwiązanie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Uwzględnij wszystkie istniejące pola i dodaj nowe pola do dokumentu

  2. Znajdź minimalną i maksymalną wartość z tablicy w mongodb

  3. Unikaj bieżącego parsera ciągu URL jest przestarzałe ostrzeżenie przez ustawienie useNewUrlParser na true

  4. ImportError:Brak modułu o nazwie objectid

  5. Mongodb – indeks wielu tekstów:zbyt duży wzorzec klucza indeksu, kod błędu 67