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).