2016-11-23 43 views
0

我是ExpressJs和NodeJS的新手。我正試圖將我的userInformation獲取到Appointment模式。我如何從約會架構訪問我的用戶架構?我敢肯定,我們將不得不使用填充,但我不知道如何使用它從預約架構中獲取用戶信息

預約模式

var appointmentSchema = mongoose.Schema({ 
    userId: String, 
    visitType : String, 
    timeDuration : String, 
    startTime : Date, 
    endTime : Date, 
    status : String 

    }); 

用戶模式:

var userSchema = mongoose.Schema({ 
    _id : String, 
    prefix : String, 
    firstName : String, 
    middleName : String, 
    lastName : String, 
    dob : String, 
    age : Number, 
    gender : String 
}); 

在此先感謝

回答

0

那麼,我會假設那些TWO以上模式的名字是AppointmentUser r espectively,到目前爲止還沒有涉及彼此的模式,所以:

第一件事:你需要一提的是userId屬性在Appointment模式是指User架構如下:

userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, 
而不是

userId: String, 

第二件事:在嘗試獲取來自Appointment schema你userInformation,您的查詢將是:

Appointment 
    .find({ /* whatever your filters options */ }) 
    .populate('userId') 
    .exec() 

瞭解更多關於貓鼬人口http://mongoosejs.com/docs/populate.html

+0

不應該,我們必須添加_id:{類型:mongoose.Schema.Types.ObjectId,ref:'Appoinment'}以及用戶架構。 @Basim Hennawi – Vignesh

+0

'User'和'Appointment'之間的關係是什麼? 1:1? 1:N?用戶模式中的'_id'屬性是指什麼? userId或appointmentId? –

+0

1:N和用戶的_id是約會架構中的userId。 – Vignesh