我正在尝试学习和实施一些对我来说较新的操作。我有一个子架构详细信息,我将其推入父架构数组中。一切都很好。但是当涉及到前端时,只需担心几件事。
根据某人的建议,我知道我们必须将_id
存储到另一个架构中。而且,如果我们更新该_id
的详细信息,它将在存储该文件的每个架构文档中得到反映。
现在,我通过父架构登录,我想查看那些数组_id
的全部详细信息,因为我需要在前端显示列表。目前,我只能看到ids
。我想填充这些ID的整个对象的数组。
我可以填充数据,但是我需要使用其他API网址来显示列表。我不要那个 。我知道如果将ObjectId
更改为Mixed
,则可以看到整个对象。但是问题在于它不会显示更新的数据。所以我按ObjectId users:[ {type: mongoose.Schema.Types.ObjectId, ref: 'Userr'}]
那么如何在不创建新的路由api的情况下在主模式数组上填充更新的users
远程数据?
子架构:-
{
"_id": "5d034653ff1e426fb0e3fca1",
"firstName": "xyz",
"lastName": "fg",
"__v": 0
}
主要架构响应详细信息:-
{
"admins": {
"users": [
"5d034653ff1e426fb0e3fca1" //<========= what i am getting
],
"email": "1cf1eede89@himail.online",
"password": "$2a$10$vHyGxX9P.t0/ybKcmIzkc.ZCX18oHaVnvTgJIWA2gTNzJ3TCdXS4a",
},
"_id": "5d0339d5b4b28b6ddff06802",
"companyID": "497399",
"__v": 0
}
我要显示这样的结果:
{
"admins": {
"users": [
"5d034653ff1e426fb0e3fca1",
"firstName" : "xyz",
"lastName" :"fg"
],
"email": "1cf1eede89@himail.online",
"password": "$2a$10$vHyGxX9P.t0/ybKcmIzkc.ZCX18oHaVnvTgJIWA2gTNzJ3TCdXS4a",
},
"_id": "5d0339d5b4b28b6ddff06802",
"companyID": "497399",
"__v": 0
}
注册用户的功能:-
if(req.userData.role2 === 'admin') {
console.log("saving successful");
res.send(doc);
Admin.findOneAndUpdate({ _id: req.userData.userId }, { $push: { 'admins.users': userr._id } }, { new: true })
.populate('admins.users')
.exec(function(error, res){
if (error) {
console.log(error);
}else {
console.log(res.admins.users+ "populated")
}
});
}
这向我显示了填充数据列表,但如何在数组对象中显示它
我需要显示子架构的更新对象。这样我就可以在前端列出我想要的任何细节