【发布时间】:2015-07-28 19:58:12
【问题描述】:
我的项目涉及我只允许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'
}
在User Schema中,UserGroupID是指UserGroups Model,其Schema如下:
groupName: {
type: String,
required: true,
index: true,
unique: true
},
createdDate: {
type: Date,
default: Date.now
},
updatedDate: {
type: Date,
default: Date.now
},
uid: {
type: Number,
min: 1
},
mappedUserDetails3: {
type: Schema.Types.ObjectId,
ref: 'User'
}
我发布的数据如下
{
"userId":"55b7320173ceb5640e1b24a6",
"ugId":3,
"firstName":"AGGI",
"lastName":"AGGIqa"
}
成功完成我的 API 后收到的输出如下
{
"success": true,
"userData":{
"_id": "55b758a09472f03310cdb9a2",
"userId":{
"_id": "55b7320173ceb5640e1b24a6",
"email": "XYZ@gmail.com",
"firstName": "XYZ",
"lastName": "XYZ",
"userName": "XYZ XYZ",
"UserGroupID": "55b7138c049d0d5d0dddd824",
"__v": 0
},
"firstName": "AGGI",
"lastName": "AGGIqa",
"ugId": 3,
"__v": 0
}
My Question:我想知道有没有办法在已经填充的userId 中填充UserGroupID,因为UserGroupID 指的是objectId UserGroup模特?
userId 我的populate 代码如下:
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
});
}
});
【问题讨论】: