首页 > 解决方案 > 使用 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);
     })

标签: node.jsangularmongodbexpress

解决方案


推荐阅读