【发布时间】:2020-04-10 10:04:37
【问题描述】:
假设我有一个这样的架构:
Schema({
username: String,
privilege: {
type: String,
enum: ["admin", "pro", "user", "guest"],
required: false,
default: "user"
},
tagType: { // A little badge that appears next to users' names on the site.
///???
}
});
对于tagType,如果privilege 是admin,我希望能够定义这样的内容:
{
color: String,
image: String,
text: {
type: String,
required: true,
enum: ["I'm the highest rank", "I'm an admin", "Admin privileges are great"]
},
dateAdded: Date
}
同时,如果privilege 是pro:
{
color: String,
text: {
type: String,
required: false,
enum: ["This website is great", "I'm am a Pro user", "I get a nice tag!"],
default: "This website is great"
},
dateAdded: Date
}
同时,对于所有 user 或 guest 条目,不应允许任何选项。
这种动态交叉检查可能吗?我曾尝试通读docs,但尽管其中的内容看起来要复杂得多,但我找不到任何方法来实现这一点。
【问题讨论】:
标签: node.js mongoose schema mongoose-schema