node.js - 如何通过模式数组中的 id 填充更新的文档
问题描述
我正在尝试学习和实施一些对我来说较新的操作。我有一个子架构详细信息,我正在将其推送到父架构数组中。一切都很顺利。但是当涉及到前端时,关心的事情很少。
根据某人的建议,我知道我们必须存储_id
到另一个模式。如果我们更新它的详细信息_id
,它将反映在存储它的每个模式文档中。
现在我通过父模式登录,我想查看这些数组的全部详细信息, _id
因为我需要在前端显示列表。现在我只能看到ids
。我想填充这些 id 的整个对象的数组。
我可以填充数据,但我需要使用不同的 API Url 来显示列表。我不要那个 。我知道如果我更改ObjectId
为Mixed
,我可以看到整个对象。但问题是它不会显示更新的数据。所以我按 ObjectId 推动users:[ {type: mongoose.Schema.Types.ObjectId, ref: 'Userr'}]
那么如何users
在不创建新路由 api 的情况下在我的主模式数组上填充更新的 aray 数据?
子架构:-
{
"_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")
}
});
}
这向我显示了填充数据列表,但如何在数组对象中显示它
我需要显示子模式的更新对象。这样我就可以在前端使用来列出我想要的任何细节
解决方案
推荐阅读
- sql - 从prestosql中的日期列获取星期几?
- python - 如何使用分类变量和时间序列制作水平折线图?
- java - 在回调中使用“throws”关键字
- python - 通过共享对象的 __dict__ 属性创建对象视图
- javascript - 未捕获的类型错误:无法读取 javascript 中未定义的属性“样式”
- r - 聚合一列字符串值
- javascript - 如何在调用任何构造函数之前定义所有自定义元素?
- prestashop-1.7 - 如何更改 prestashop 1.7.6.0 中每个项目的文本颜色?
- r - 我在 csv 中有时间序列数据,其中包含重复时间和缺失时间。是否可以将其转换为 xts 对象?
- javascript - 是否可以将内部 Div Click 绑定到外部 Div?