【问题标题】:Fetch row number MongoDB c#获取行号MongoDB c#
【发布时间】:2023-03-18 14:14:01
【问题描述】:

我在 考试。使用 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;
        }

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

【问题讨论】:

  • 我不太了解你需要什么,但我想你至少可以通过更强大的聚合框架达到你需要的目标:docs.mongodb.com/manual/aggregation。请提供更多详细信息以便继续

标签: c# mongodb aggregation-framework mongodb-.net-driver mongodb-compass


【解决方案1】:

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

【讨论】:

  • 嘿,你能检查一下link是否可行吗?
猜你喜欢
  • 1970-01-01
  • 2018-08-20
  • 2020-09-21
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多