Introducción
conseguiry colocarLe ayudan a cambiar la forma en que se recuperan y establecen las propiedades definidas por claves y valores en el documento sin procesar subyacente.
setters
colocar Le permiten transformar los datos del documento Mongoose antes de que lleguen al documento MongoDB sin procesar y se establezcan como un valor en una clave real.
Supongamos que está implementando el registro de usuarios para un sitio web. Los usuarios proporcionan un correo electrónico y una contraseña, que se almacenan en MongoDB. El correo electrónico es una cadena que desea convertir a minúsculas para que un correo electrónico no tenga más de una cuenta. Por ejemplo, [email protected] se puede registrar para dos cuentas: [email protected] y [email protected].
Puede configurar fácilmente la normalización de minúsculas en el correo electrónico mediante los setters de Mongoose. Observe en el siguiente fragmento que los setters (así como los destinatarios) se definen en el esquema:
function toLower (v) {
return v.toLowerCase();
}
var UserSchema = new Schema({
email: { type: String, set: toLower }
});
var User = mongoose.model('User', UserSchema);
var user = new User({email: '[email protected]'});
console.log(user.email); // '[email protected]'Como puede ver arriba, los configuradores le permiten transformar datos antes de que lleguen al documento mongodb sin procesar y establecerlos como un valor para una clave real.
captadores
conseguir Le permiten transformar las vistas de datos a medida que navega desde el documento MongoDB sin procesar a lo que ve.
Supongamos que almacena un número de tarjeta de crédito y desea ocultar todo excepto los últimos 4 dígitos al usuario de Mongoose. Puede hacerlo definiendo un destinatario como este (tenga en cuenta que los destinatarios se definen en el esquema):
function obfuscate (cc) {
return '****-****-****-' + cc.slice(cc.length-4, cc.length);
}
var AccountSchema = new Schema({
creditCardNumber: { type: String, get: obfuscate }
});
var Account = mongoose.model('Account', AccountSchema);
Account.findById( someId, function (err, found) {
console.log(found.creditCardNumber); // '****-****-****-1234'
});Resultado
Los setters modifican los datos sin procesar subyacentes. Los getters transforman (pero no modifican a nivel de datos sin procesar) los datos sin procesar subyacentes en lo que el usuario espera ver. Ambos se definen en la definición del esquema.









