【发布时间】:2017-06-26 23:14:05
【问题描述】:
我有如下的猫鼬模式。
'use strict';
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var UserSchema = new Schema({
role: {
type: String,
enum: ['user', 'admin']
}
});
mongoose.model('User', UserSchema);
我想从数据库动态设置角色枚举值而不是硬编码,我该怎么做?
【问题讨论】:
-
从数据库中获取值然后初始化你的架构?
-
如果数据库中的数据发生变化怎么办?在服务器重新启动之前不会更新架构
-
如果您的数据是动态的,那么我想您必须添加一个
pre挂钩,该挂钩每次在执行实际查询之前都会从数据库中查询枚举。为了优化这一点,您可以使用 pub-sub 类型的模型,并且只要有新的枚举添加到数据库中,只需在本地更新您的枚举。这将防止每次在pre挂钩中查询数据库。 -
@Vishnu 你得到这个答案了吗?
标签: node.js mongoose enums mongoose-schema