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

Jak najít čas operace poslední aktualizace/vložení/smazání na kolekci mongodb bez pole objectid

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


  1. Problém MongoDB NumberLong/$numberLong při převodu zpět na Java Object

  2. Jak ukládat výsledky z dynamicky generovaných formulářů v MongoDb?

  3. vytvoření mangoose schématu

  4. Aktualizujte model pomocí Mongoose, Express, NodeJS