首页 > 解决方案 > 获取行号MongoDB c#

问题描述

考试结束后,我正在获取单个候选人的考试结果详细信息。使用 c# 驱动程序存储在 mongodb 中。该集合具有 TotalMarks 字段,该字段与在该考试中获得的分数一起存储。

不幸的是,该集合没有排名字段,因为标记计算不是按顺序完成的

我想要做的是按总分对集合进行排序,并获得我选择的候选人的位置(等级)。

public ExamCandidateResult ExaminationGetCandidateResultStatus( Guid examinationId, Guid candidateId)
        {
            var con = new MongoClient(DBConnection.ExamConnectionString);
            var db = con.GetDatabase(ExamDB);
            var collection = db.GetCollection<ExamCandidateResult>("Examination");
            var filter = Builders<ExamCandidateResult>.Filter.Eq("ExaminationID", examinationId.ToString())
                       & Builders<ExamCandidateResult>.Filter.Eq("CandidateID", candidateId.ToString());
            var data = collection.Find(filter).FirstOrDefault();
            return data;
        }

使用此代码,我仅获取候选人详细信息如何获取排名(行)?

标签: c#mongodbaggregation-frameworkmongodb-.net-drivermongodb-compass

解决方案


我不认为您可以直接获取行号,但是您可以使用两个查询,一个获取候选人,一个获取总分数比所需候选人多的候选人的数量,最后加上一个计数来获得排名候选人的。


推荐阅读