Mongodb Mongoose模式中的非持久属性

Mongodb Mongoose模式中的非持久属性,mongodb,mongoose,Mongodb,Mongoose,我正在使用Mongoose作为NodeJS项目MongoDB的映射器。我希望能够拥有不写入数据库的非持久属性。例如,我想存储诸如散列密码、用户名和电子邮件之类的内容。另一方面,对于频繁更改的内容,例如套接字id和位置,我希望能够在模式中包含这些内容,而不必一直将它们写入数据库。我在Mongoose文档中读到了虚拟属性,但是,这些示例只是结合了现有的持久属性,而不是使用新的非持久属性 var userSchema = mongoose.Schema({ email: String,

我正在使用Mongoose作为NodeJS项目MongoDB的映射器。我希望能够拥有不写入数据库的非持久属性。例如,我想存储诸如散列密码、用户名和电子邮件之类的内容。另一方面,对于频繁更改的内容,例如套接字id和位置,我希望能够在模式中包含这些内容,而不必一直将它们写入数据库。我在Mongoose文档中读到了虚拟属性,但是,这些示例只是结合了现有的持久属性,而不是使用新的非持久属性

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
存储为一个非持久属性。

如果不想将它们存储在数据库中,为什么要将它们存储在模式中?用例是什么?@robertklep将模式和临时变量包装到类中是更好的方法吗?例如,如果我有一个用户类,它有一个包含持久属性的模式对象和一个包含非持久属性的临时对象,这听起来很复杂。我仍然对您想要这些非持久性属性的实际用例感兴趣,因为对于一个感知到的问题可能有一个简单的解决方案。