我使用Mongoose作为我的NodeJS项目的MongoDB映射器。我希望能够拥有不会写入数据库的非持久性属性。例如,我想存储散列密码,用户名和电子邮件等内容。另一方面,经常变化的东西,例如套接字ID和位置,我希望能够在我的模式中包含这些东西,而不必总是将它们写入数据库。我已经阅读了Mongoose doc中的虚拟属性,但是,这些示例仅仅将现有的持久属性组合在一起,而不是使用新的非持久属性。
var userSchema = mongoose.Schema({
email: String,
gender: String,
location: {
lat: String,
lng: String
},
password: String
});
userSchema.methods.generateHash = function(password)
{
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
userSchema.methods.validPassword = function(password)
{
return bcrypt.compareSync(password, this.password);
};
module.exports = mongoose.model('User', userSchema);
在上面的代码中,我想以某种方式将lat/lng
存储为非持久属性。