sql >> Databáze >  >> NoSQL >> MongoDB

sledovat smazané dokumenty v omezené sbírce Mongo DB

Omezené sbírky jsou kolekce pevné velikosti, které automaticky odstraňují nejstarší dokumenty (na základě pořadí vložení) jejich přepsáním, jakmile je kolekce plná.

Koncepčně omezené kolekce jsou spíše kruhovou vyrovnávací pamětí než frontou.

To nezní jako vhodné pro případ použití uchování informací o objednávce – neexistuje žádný „háček“ na opětovné vložení dokumentů do omezené sbírky, když jsou odstraněny, a pokud je vaše omezená sbírka příliš malá, můžete je přepsat. dokumentů před jejich zpracováním.

Myslím, že opravdu chcete používat normální (neomezenou) kolekci.

Smazat staré objednávky podle stavu

Pokud chcete smazat objednávky na základě nějaké hodnoty stavu, měli byste to zpracovat v kódu aplikace (například když se objednávka přesune ze stavu „Čeká na vyřízení“ do stavu „Zpracováno“, udělejte vše potřebné k vyčištění).

Smazat staré/vypršené objednávky podle času

Pokud chcete, aby byly staré/prošlé objednávky automaticky smazány v určitou dobu, dobrým přístupem by bylo použití normální sbírky s vypršení platnosti TTL (Time-To-Live) na úrovni dokumentu , např.:

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

Poté můžete nastavit (nebo prodloužit) dobu platnosti pro každý dokument objednávky na základě expireAt datum. Upozorňujeme, že toto nemusí být vhodná volba, pokud potřebujete zkontrolovat obě expireAt hodnotu a pole stavu (vypršení platnosti TTL je založeno výhradně na poskytnutém indexu data).




  1. mangoose třídění dílčích dokumentů

  2. c# mongodb vyhledávání citlivé na velká a malá písmena

  3. Získejte BinData UUID z Mongo jako řetězec

  4. MongoDB $ a dotaz operátora v PHP