Node.js 猫鼬上的多个一对多关系

Node.js 猫鼬上的多个一对多关系,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用mongoose来存储三个模型的文档,有时我必须在这三个模型之间更新引用,为此我使用, 我需要的是这样的参考: 一个客户有很多时间表 一个客户有很多订单 一个订单有很多时间表 当我创建订单时,我需要将计划id推送到订单中以供参考。但每个集合只能引用一个childPath,我的模型是这样映射的 顾客: var CustomerSchema = new Schema({ name: {type: String, required: true}, email: {type:

我使用mongoose来存储三个模型的文档,有时我必须在这三个模型之间更新引用,为此我使用, 我需要的是这样的参考:

  • 一个客户有很多时间表
  • 一个客户有很多订单
  • 一个订单有很多时间表
当我创建订单时,我需要将计划id推送到订单中以供参考。但每个集合只能引用一个childPath,我的模型是这样映射的

顾客:

var CustomerSchema = new Schema({
    name: {type: String, required: true},
    email: {type: String, required: true},
    shedules: [{ type:mongoose.Schema.Types.ObjectId, ref:"Schedule" }],
    orders: [{ type:mongoose.Schema.Types.ObjectId, ref:"Order" }]
}
附表:

var ScheduleSchema = new Schema({
    customer: {type:mongoose.Schema.Types.ObjectId, ref:"Customer", childPath:"shedules"}, //shedule id
    order: {type:mongoose.Schema.Types.ObjectId, ref:"Order", childPath:"shedules"}, //order Id
    sequence: {type: Number, default: 0},
    creation_date: {type: Date, default: Date.now}
}
SheduleSchema.plugin(relationship, {relationshipPathName:['customer','order']});
订单:

var OrderSchema = new Schema({
    customer: {type:mongoose.Schema.Types.ObjectId, ref:"Customer", childPath:"order"},
    shedules: [{type:mongoose.Schema.Types.ObjectId, ref:"Shedule" }],// <-- this field doesn't update.
    price: {type: Number, default: 0}
}
OrderSchema.plugin(relationship, { relationshipPathName:'customer' });
var OrderSchema=新模式({
客户:{type:mongoose.Schema.Types.ObjectId,ref:“客户”,childPath:“订单”},
日程安排:[{type:mongoose.Schema.Types.ObjectId,ref:“日程安排”}]//