Document vs Query Middleware

Mongoose 🔴 Senior

Definition

Les Document middlewares (save, validate, remove) ont this = le document. Les Query middlewares (find, update, delete) ont this = la query. Important pour savoir quoi modifier.

Analogie

Document middleware = le chirurgien qui opere directement le patient. Query middleware = le pharmacien qui modifie l'ordonnance.

Exemple de code

// Document: this = document
schema.pre('save', function() {
  console.log(this.name);
});
// Query: this = query
schema.pre('find', function() {
  this.where({ deleted: false });
});

Cas d'usage

Implementer du soft-delete en filtrant automatiquement les documents supprimes sur chaque find.

#sgbd#interview#database#mongoose