Node.js 基于属性的mongoose动态引用

Node.js 基于属性的mongoose动态引用,node.js,mongoose,Node.js,Mongoose,我想要一个基于模式中另一个属性的动态引用 我有以下模式,其中位置可以由个人或组织控制(例如,办公楼由公司控制,本地商店由所有者控制) 我想一个选择是将两个字段放在“controlledBy”中,但不确定这是否是最好的方法 controlledBy:{ type: {String, enum: [ 'Organization', 'Individual']}, individual: { type: String, ref: 'PersonData' }, organiz

我想要一个基于模式中另一个属性的动态引用

我有以下模式,其中位置可以由个人或组织控制(例如,办公楼由公司控制,本地商店由所有者控制)

我想一个选择是将两个字段放在“controlledBy”中,但不确定这是否是最好的方法

controlledBy:{ 
    type: {String, enum: [ 'Organization', 'Individual']},
    individual: { type: String, ref: 'PersonData' },
    organization: { type: String, ref: 'OrganizationData'}
}

有了以上内容,我想我可能会放弃输入?

收到交叉发布的回复。在查看您发布的文档链接时,我相信我在模型中需要的如下内容:var locationSchema=newschema({u id:{type:String,required:true},name:{type:String,required:true},controlledBy:{kind:{type:String,enum:['OrganizationData',IndividualData']},控制器:{type:ObjectId,refPath:'controlledBy.kind'},}});如果locationSchema.controlledBy是一个数组,您知道如何分别计算组织数和个人数吗?
controlledBy:{ 
    type: {String, enum: [ 'Organization', 'Individual']},
    individual: { type: String, ref: 'PersonData' },
    organization: { type: String, ref: 'OrganizationData'}
}