strictQuery

Mongoose 🟡 Mid

Définition

Option de schema qui contrôle le comportement des filtres de requête (find, findOne...) sur des champs absents du schema, a distinguer de l'option strict qui ne s'applique qu'aux écritures. Depuis Mongoose 7, strictQuery vaut false par défaut : les champs inconnus dans un filtre sont conserves tels quels plutôt que supprimes silencieusement.

Analogie

Comme un videur qui, avant, ignorait silencieusement les noms non présents sur la liste (true) et qui aujourd'hui les laisse passer sans les filtrer (false) : le comportement par défaut a change.

Exemple de code

mongoose.set('strictQuery', false); // defaut depuis Mongoose 7
// 'throw' leve une erreur si un champ hors
// schema est utilise dans le filtre
const User = mongoose.model('User', schema);
await User.find({ champInexistant: 'x' });
// pas filtre silencieusement

Cas d'usage

Détecter des fautes de frappe dans les filtres de requête en passant strictQuery a 'throw' en développement.

Anti-pattern

Se fier a l'ancien comportement true (filtrage silencieux) sans vérifier le défaut de la version installée.

Termes liés

#sgbd#interview#database#mongoose

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre