node.js - 使用 id 从 mongodb 获取数据到 angular 的问题
问题描述
我需要更改现有的 api,以使用唯一的 id 引用从stdsubassignments Mongodb 集合中获取等级列,我无法弄清楚如何。我正在使用 /getStudentAssignment 路由使用唯一 ID 调用数据。我需要使用相同的路线从 stdsubassignments调用等级列。我是 Angular 和 mongodb 的新手。任何人都可以在这里帮助我。提前致谢。
<nb-list-item class="Rtable-row is-striped" *ngFor="let assignment of assignments; let i =
index">
<div class="Rtable-cell date-cell">
<div class="Rtable-cell--heading">Sr.No.</div>
<div class="Rtable-cell--content date-content"><b> {{i+1}}.</b></div>
</div>
<div class="Rtable-cell date-cell">
<div class="Rtable-cell--heading">Subject</div>
<div class="Rtable-cell--content date-content">
{{assignment.subject}}
</div>
</div>
<div class="Rtable-cell date-cell">
<div class="Rtable-cell--heading">Assignment</div>
<div class="Rtable-cell--content date-content">
{{assignment.assignmentName}}
</div>
</div>
<div class="Rtable-cell date-cell">
<div class="Rtable-cell--heading">Grade</div>
<div class="Rtable-cell--content date-content">
<!-- {{assignment.studentUploads{{$feedback}}}} -->
{{assignment.grade}}
</div>
</div>
<div class="Rtable-cell date-cell">
<div class="Rtable-cell--heading">View</div>
<div class="Rtable-cell--content date-content">
<button nbButton (click)="viewAssignment(assignment,true)" status="success">View Assignment</button>
</div>
</div>
</nb-list-item>
{
"_id": {
"$oid": "611df5efb072e04e28e213cd"
},
"assignmentId": "611df5efb072e04e28e213cc",
"studentId": "60dafc5c0254f7122e9fe7f0",
"assignmentOf": "subject",
"createdAt": {
"$date": "2021-08-19T06:10:55.628Z"
},
"updateAt": {
"$date": "2021-08-19T06:10:55.628Z"
},
"__v": 0,
"grade": "A",
"remark": "B",
"template": "ok ok"
}
getAssignmentsList(){
this.assignmentApi.getStudentAssignment(this.userStore.getUser()['id']).subscribe((data)=>{
this.assignments = data['data'];
console.log('Check Data: ',this.assignments);
});
}
router.get('/getStudentAssignment',(req,res)=>{
console.log("req student======================",req.query)
var assignments = [];
StdSubAssignmentsModel.find({
studentId:req.query.userId
}).then(function(stdAssignment){
stdAssignment.forEach(assignment=>{
var assignment_obj = { }
var studentUploads = [];
stdAssignmentUploadModel.find({
assignId : assignment._id
}).then(function(assignmentUploads){
if(assignment.assignmentOf == 'cohort'){
cohortAssignmentModel.findOne({
_id:assignment.assignmentId
}).then(function(cohortAssignment){
assignment_obj.fileLink =`${filelink}api/assignments/download?
document_id=${cohortAssignment.doc_id}`;
assignment_obj.fileName = cohortAssignment.fileName;
assignment_obj.assignmentName = cohortAssignment.assignmentName;
assignment_obj.assignmentCreated = cohortAssignment.createdAt;
assignment_obj.assignmnentDraft = cohortAssignment.draftDate;
assignment_obj.assignmentSubmission = cohortAssignment.submissionDate;
assignment_obj.resubmissionDate = cohortAssignment.resubmissionDate;
assignment_obj.assignmentDescription = cohortAssignment.description;
assignment_obj.assignmentFileType = cohortAssignment.fileType;
assignment_obj.subject = cohortAssignment.subject;
assignment_obj.typeOfAssignment = cohortAssignment.typeOfAssignment;
assignment_obj.assignmentId = cohortAssignment._id;
assignment_obj.assignId = assignment._id;
assignment_obj.doc_id = cohortAssignment.doc_id;
assignmentUploads.forEach(uploadAssign=>{
studentUploads.push({
fileLink: `${filelink}api/assignments/download?
document_id=${uploadAssign.doc_id}`,
fileName:uploadAssign.fileName,
doc_id:uploadAssign.doc_id,
feedback:uploadAssign.feedback
})
});
assignment_obj.studentUploads = studentUploads;
console.log("assignment_obj == " + JSON.stringify(assignment_obj));
})
}else if(assignment.assignmentOf == 'subject'){
//check in subjectassignment table
SubjectAssignmentseModel.findOne({
_id:assignment.assignmentId
}).then(function(subAssignment){
assignment_obj.fileLink =`${filelink}api/assignments/download?
document_id=${subAssignment.doc_id}`;
assignment_obj.fileName = subAssignment.fileName;
assignment_obj.assignmentName = subAssignment.assignmentName;
assignment_obj.assignmentCreated = subAssignment.createdAt;
assignment_obj.assignmnentDraft = subAssignment.draftDate;
assignment_obj.assignmentSubmission = subAssignment.submissionDate;
assignment_obj.resubmissionDate = subAssignment.resubmissionDate;
assignment_obj.assignmentDescription = subAssignment.description;
assignment_obj.assignmentFileType = subAssignment.fileType;
assignment_obj.subject = subAssignment.subject;
assignment_obj.typeOfAssignment = subAssignment.typeOfAssignment;
assignment_obj.assignmentId = subAssignment._id;
assignment_obj.assignId = assignment._id;
assignment_obj.doc_id = subAssignment.doc_id;
assignmentUploads.forEach(uploadAssign=>{
studentUploads.push({
fileLink: `${filelink}api/assignments/download?
document_id=${uploadAssign.doc_id}`,
fileName:uploadAssign.fileName,
doc_id:uploadAssign.doc_id,
feedback:uploadAssign.feedback
})
});
console.log("studentUploads == " + JSON.stringify(studentUploads))
assignment_obj.studentUploads = studentUploads;
console.log("assignment_obj == " + JSON.stringify(assignment_obj));
})
}
assignments.push(assignment_obj)
})
})
})
setTimeout(()=>{
console.log("assignments == " + JSON.stringify(assignments));
res.json({
status:200,
data:assignments
})
},5000);
})
解决方案
推荐阅读
- java - Azure 文件存储内容类型始终更改为应用程序/八位字节流建议解决方案我该如何修复
- ionic-framework - 在 IONIC 中呈现常规 HTML
- angular - 当我首先在数组中添加项目时,ngFor 重新打印所有 dom
- node.js - 为什么我无法在节点 js 中更新 env 变量
- ios - 动画 UIPopoverPresentationController 视图的中心位置
- php - 如何通过 MySQL 查询或 PHP 代码删除无法识别的字符?
- java - Arraylist 索引超出范围
- javascript - 在香草 JS 闹钟上选择值时遇到问题
- tensorflow - tensorflow.layers.batchnormalization 中批量标准化中的 Const 节点是什么
- c++ - 为什么我得到 munmap_chunk(): invalid pointer: error