strictQuery
Mongoose 🟡 MidDé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
Fiche mise à jour le 2026-09-27