Mongoose:如何使用架构字段作为另一个字段的枚举?

时间:2015-08-28 21:39:54

标签: mongoose

是否可以做这样的事情?

var schema = mongoose.Schema({
    possibleValues: ['A', 'B', 'C'],
    value: { type: String, enum: possibleValues }
});

"值&#34>的可能值是" possibleValues"中的值。

1 个答案:

答案 0 :(得分:2)

您可以使用custom validator执行此操作,该{{3}}会检查文档value数组中是否包含possibleValues

var custom = [
    function(value) {
        // 'this' is the document being validated
        return this.possibleValues && this.possibleValues.indexOf(value) !== -1;
    },
    'value must be contained in possbileValues'
];

var schema = mongoose.Schema({
    possibleValues: [String], // e.g. ['A', 'B', 'C'],
    value: { type: String, validate: custom }
});