2016-09-29 3 views
1

私は、ユーザースキーマを参照している顧客スキーマを持っています。顧客のスキーマは、私も今jobschemaを持って、私は仕事のスキーマにメンバーを参照したい他のスキーマのネストされたドキュメントの参照

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

以下のような配列であるメンバーをしています。どのようにすれば、メンバースキーマ内のmemberId()(顧客スキーマのメンバーに値を挿入するときに生成される)を参照する方法がありますか。 私JobSchemaは、私はあなたがjobフィールドを定義することにより、このような方法でこれを行うと、それはあなたができるこの方法schema.Inあなたの仕事に参照することができますタスク

+0

は、私も自分のプロジェクトの一つで同じ問題を抱えていました。メンバーのための別のスキーマを作成し、その_idを顧客のメンバー配列に格納してメンバースキーマに参照する必要がありました。私はどこにでもメンバーを紹介することができます。同じスキーマでこの問題を解決することができたら幸いです。 :) – Sachin

答えて

0

内のメンバーを参照する必要が

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

のようになります。仕事でメンバーを参照してください

顧客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); 
+0

私は、メンバーが求人になることを望んでいます。あなたはそれの反対を言っているか – Ashwin

+0

あなたの必要条件は何ですか? 「1対多」または「多対多」 –

関連する問題