Mongoose模式中的非持久属性

时间:2016-06-11 17:06:24

标签: mongodb mongoose

我使用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存储为非持久属性。

0 个答案:

没有答案