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

śledź usunięte dokumenty w ograniczonej kolekcji Mongo DB

Kolekcje ograniczone to kolekcje o stałym rozmiarze, które automatycznie usuwają najstarsze dokumenty (na podstawie kolejności wstawiania) przez nadpisanie ich po zapełnieniu kolekcji.

Kolekcje ograniczone koncepcyjnie są raczej okrągłym buforem niż kolejką.

To nie brzmi jak dobry przypadek użycia utrwalania informacji o zamówieniu — nie ma „haczyka”, aby ponownie wstawić dokumenty do ograniczonej kolekcji, gdy zostaną usunięte, a jeśli Twoja ograniczona kolekcja jest zbyt mała, możesz ją zastąpić dokumenty przed ich przetworzeniem.

Myślę, że naprawdę chcesz używać normalnej (bez limitów) kolekcji.

Usuń stare zamówienia na podstawie statusu

Jeśli chcesz usunąć zamówienia na podstawie jakiejś wartości stanu, powinieneś to zrobić w kodzie aplikacji (na przykład, gdy zamówienie przechodzi ze stanu „Oczekujące” do „Przetwarzane”, wykonaj wszelkie wymagane czyszczenie).

Usuń stare/wygasłe zamówienia na podstawie czasu

Jeśli chcesz, aby stare/wygasłe zamówienia były automatycznie usuwane w określonym czasie, dobrym rozwiązaniem byłoby użycie normalnej kolekcji z wygaśnięcie czasu wygaśnięcia (TTL) na poziomie dokumentu , np.:

db.orders.ensureIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

Następnie możesz ustawić (lub przedłużyć) wygaśnięcie ważności każdego dokumentu zamówienia na podstawie expireAt data. Zauważ, że może to nie być odpowiednia opcja, jeśli musisz sprawdzić oba expireAt wartość i pole statusu (wygaśnięcie TTL jest oparte wyłącznie na podanym indeksie dat).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak odzyskać upuszczoną bazę danych MongoDB?

  2. Jak wyszukiwać słowo lub ciąg we wszystkich polach w dokumencie za pomocą MongoDB?

  3. Jak połączyć stronę Laravel z atlasem mongoDB?

  4. Integracja ClusterControl z SNMP:część druga

  5. MongoDB $atan