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

Snadný způsob, jak zvýšit verze dokumentu Mongoose pro jakékoli aktualizační dotazy?

Řekl bych, že tudy vede cesta. před middleware přesně odpovídá této potřebě a neznám jiný způsob. Ve skutečnosti to je to, co dělám ve všech mých schématech.

Co si však musíte uvědomit, je rozdíl mezi dokumentem a dotaz middleware.Dokument middleware se spouští pro init , validate , save a remove operace. Tady, this odkazuje na dokument:

schema.pre('save', function(next) {
  this.increment();
  return next();
});

Dotaz middleware se spouští pro count , find , findOne , findOneAndRemove , findOneAndUpdate a update operace. Tady, this odkazuje na objekt dotazu. Aktualizace pole verze pro takové operace by vypadala takto:

schema.pre('update', function( next ) {
  this.update({}, { $inc: { __v: 1 } }, next );
});

Zdroj:dokumentace mongoose .



  1. Mongo jak $lookup s DBRef

  2. Jak nastavit jedinečné omezení pro pole v dokumentu vnořeném do pole?

  3. Které by měly být singleton v jedné aplikaci? MongoClient nebo MongoDatabase nebo MongoCollection?

  4. Chci načíst hodnoty vložené k určitému datu pomocí _id mongodb