2015-07-28 144 views
0

我的項目涉及到我只允許一個school Admin爲各個學校插入學生的數據,我應該顯示插入數據的school Admin的詳細信息以及他輸入的學生詳細信息。如何在貓鼬中嵌套填充?

我爲students架構模式如下:

userId: { 
     type: Object, 
     ref: 'User' 
    }, 
    ugId:{ 
     type:Number 

    }, 
    firstName:{ 
     type:String, 
     required:true 
    }, 
    lastName:{ 
     type:String, 
     required:true  
    } 

在這裏你可以看到userId指的是模式叫User其架構如下:

email: { 
     type: String, 
     required: true, 
     index: true, 
     unique: true 
    }, 
    firstName: { 
     type: String, 
     required: true 
    }, 
    lastName: { 
     type: String, 
     required: true 
    }, 
    userName: { 
     type: String, 
     required: true 
    }, 
    password: { 
     type: String, 
     required: true 
    }, 
    mappedUserDetails2: { 
     type: Schema.Types.ObjectId, 
     ref: 'Students' 
    }, 
    UserGroupID: { 
     type: Object, 
     ref: 'UserGroups' 
    } 

在用戶Schema,UserGroupID指的是UserGroups模式,其模式如下:

我張貼

的數據如下

{ 
    "userId":"55b7320173ceb5640e1b24a6", 
    "ugId":3, 
    "firstName":"AGGI", 
    "lastName":"AGGIqa" 
} 

我在我的API成功完成接收的輸出是如下

{ 
    "success": true, 
    "userData":{ 
      "_id": "55b758a09472f03310cdb9a2", 
      "userId":{ 
       "_id": "55b7320173ceb5640e1b24a6", 
       "email": "[email protected]", 
       "firstName": "XYZ", 
       "lastName": "XYZ", 
       "userName": "XYZ XYZ", 
       "UserGroupID": "55b7138c049d0d5d0dddd824", 
       "__v": 0 
       }, 
       "firstName": "AGGI", 
       "lastName": "AGGIqa", 
       "ugId": 3, 
       "__v": 0 
} 

My Question:我想知道,有沒有在已填充的userId中填充UserGroupID的方式,因爲UserGroupID指的是UserGroup模式的objectId

userIdpopulate代碼如下:

Students.findOne({ 
        _id: data._doc._id 
       }).populate('userId','-password').exec(function (err, data) { 
        if (err) { 
         return res.json({ 
          success: false, 
          exception: err 
         }); 
        } 
        else{ 
        return res.json({ 
          success: true, 
          userData: data 
         }); 
        } 
       }); 

回答