如何在mongoose中使用不同类型的模式?

时间:2013-12-25 16:41:52

标签: node.js mongodb mongoose schema

我有这个架构:

var UserSchema = new Schema({
    documento: []
});

和这类文件:

var RgSchema = new Schema({
    tipo: 'RG',
    numero: stringType(),
    orgaoEmissor: stringType(),
    dataExpedicao: dateType()
});

var CpfSchema = new Schema({
    tipo: 'CPF',
    numero: stringType()
});

如何在documento: []中设置不同类型的架构(RgSchema或CpfSchema)?

有点这样:

documento: [RgSchema || CpfSchema]

1 个答案:

答案 0 :(得分:1)

我认为你不能在当前版本的mongoose中实现这一点。我建议您选择tipo作为enum的两者的通用架构。

var CommonSchema = new Schema({
    tipo: {type:String, enum: ['RG', 'CPF']}
    numero: stringType(),
    orgaoEmissor: stringType(),
    dataExpedicao: dateType()
});

其他选项是对不同的架构使用不同的ref

 var UserSchema = new Schema({
        documenRG: [],
        documenCPF: []

    });