嵌套文档在其他模式中的引用

时间:2016-09-29 11:41:23

标签: javascript node.js mongodb mongoose

我有一个客户架构,它指的是用户架构。客户架构有成员,如下面的数组

 var CustomerSchema = new Schema({
  user:{
    type: Schema.Types.ObjectId,
    ref: 'User'
   },
   members:[ {       
        fname: {
            type: String,                
        },
        lname: {
            type: String,                
        }
     }
   ],
 });

我现在还有一个jobchema我想将成员引用到作业模式。我怎么能这样做是否有任何方法可以在jobschema中引用成员objectId()(在向客户模式中的成员插入值时生成)。 我的JobSchema看起来像

   var JobSchema = new Schema({
    user:{
    type: Schema.Types.ObjectId,
            ref: 'User'
    },
    task[{
      members:[{
            member_id:{
               type:Schema.Types.ObjectId,
               ref: 'Customer.members'
             }
       }]
     }]

我必须在任务中引用成员

1 个答案:

答案 0 :(得分:0)

您可以通过定义job字段并以此方式对您的工作架构进行引用来实现此目的。这样您就可以在工作中引用成员

CUSTOMER SCHEMA

 var Customer = new Schema({
      user:{ type: Schema.Types.ObjectId,  ref: 'User' },
      members:[ {       
            fname: String,
            lname: String,
            job: { type: mongoose.Schema.Types.ObjectId, ref: 'Job'} 
       }],
     });

 module.exports = mongoose.model('Customer', Customer);

JOB SCHEMA

var Job = new Schema({
        text: String
 });
  module.exports = mongoose.model('Job', Job);