J'ai un schéma d'utilisateur avec mangouste dans nodejs comme celui-ci
userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: String,
email: String
});
Sauf que parfois j'ai besoin d'ajouter quelques champs supplémentaires.
La question principale est: Puis-je avoir des champs optionnels dans un schéma monogoose?
Tous les champs d'un schéma mangouste sont facultatifs par défaut (outre _id
, bien sûr).
Un champ n'est requis que si vous ajoutez required: true
à sa définition.
Définissez donc votre schéma comme le surensemble de tous les champs possibles, en ajoutant required: true
aux champs obligatoires.
En plus de facultatif (par défaut) et obligatoire, un champ peut également être requis conditionnellement, basé sur un ou plusieurs des autres champs.
Par exemple, exigez un mot de passe uniquement s'il existe un e-mail:
var userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: {
type: String,
required: function(){
return this.email? true : false
}
},
email: String
});