2016-11-23 5 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であると仮定します

まず最初:あなたはAppointmentスキーマ内userId属性は以下の通りUserスキーマを参照していることを言及する必要があります。

userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, 
espectively、これまでのところ何もないお互い、そうでそれらのスキーマを関連付けます

の代わり:

userId: String, 

二つ目Appointment schemaからあなたのユーザ情報を取得しようとするには、クエリは次のようになります。

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

読むよりおよそマングースの人口http://mongoosejs.com/docs/populate.html

+0

たちは_idを追加する必要はありません:{タイプ:mongoose.Schema.Types.ObjectId、ref: 'Appoinment'}をUser Schemaにも追加します。 @Basim Hennawi – Vignesh

+0

'User'と' Appointment'の関係は何ですか? 1:1? 1:N?また、Userスキーマの '_id'属性は何を指していますか? userIdまたはappointmentId? –

+0

1:N、Userからの_idは、予定表スキーマのuserIdです。 – Vignesh

関連する問題