2015-07-28 138 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 
         }); 
        } 
       }); 

回答