node.js - tutorial - Campos opcionales de esquema de mangosta
node js server (2)
Tengo un esquema de usuario con mangosta en nodejs como este
userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: String,
email: String
});
Excepto que a veces necesito agregar algunos campos más.
La pregunta principal es: ¿Puedo tener campos opcionales en un esquema monogoose?
Además de opcional (predeterminado) y requerido , un campo también puede ser requerido condicionalmente , basado en uno o más de los otros campos.
Por ejemplo, requiere contraseña solo si existe un correo electrónico:
var userschema = mongoose.Schema({
org: String,
username: String,
fullname: String,
password: {
type: String,
required: function(){
return this.email? true : false
}
},
email: String
});
Todos los campos en un esquema de mangosta son opcionales por defecto (además de _id
, por supuesto).
Solo se requiere un campo si agrega required: true
a su definición.
Así que defina su esquema como el superconjunto de todos los campos posibles, agregando required: true
a los campos requeridos.