Abych to zkrátil:MongoDB má flexibilní schéma. Jednoduše přidejte pole data. Protože starší položky jej nemají, nemohou být posledním záznamem.
Nazvěme toto pole mtime
.
Takže po přidání pole data do vaší definice schématu vygenerujeme index v sestupném pořadí pro nové pole:
db.yourCollction.createIndex({mtime:-1})
Nalezení posledního času pro sbírku je nyní snadné:
db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
Udělejte to u každé sbírky. Pokud výše uvedený dotaz nevrátí hodnotu v časovém rámci, který jste definovali pro čištění kolekce, jednoduše jej zrušte, protože nebyl změněn od doby, kdy jste zavedli pole mtime.
Po vyčištění sbírek můžete odstranit mtime
pole z definice schématu. Chcete-li jej odstranit z dokumentů, můžete spustit jednoduchý dotaz:
db.yourCollection.update(
{ "mtime":{ $exists:true} },
{ "$unset":{ "mtime":""} },
{ multi: true}
)