【发布时间】:2016-02-17 13:38:45
【问题描述】:
我有以下代码块:
var r = this.collections.competitions.Find(filter)
.Project(x => x.TeamRanks)
.Project(t => t.Logo)
.Sort(sort)
.Skip(prev)
.Limit(count)
.Single();
我有这个 Competition 集合,它有 3 个字段
Class Competition {
public ObjectId _Id;
public string Logo;
public List<string> TeamRanks
}
这里的过滤器位于Competition._Id。
我想按排名升序获得徽标和排名前 5 的团队。(由count 值给出)
该列表可能很大,所以我想在这里使用 Project(或使用 Fields 的替代解决方案),但它似乎无法正常工作。
问题:
1。
r 的类型为 string,这是第二个 Project,忽略了 TeamRank。
2。 如何才能只获得排名前 5 的队伍?
TIA。
编辑
我刚刚注意到整个排序、跳过和限制都是在比赛中完成的,我当然希望将其应用于 TeamRanks。 因此,例如,如果该方法接收到 count = 7 和一些 CompetitionId,则该方法需要返回具有提供的 id 的比赛,并在其中返回排名前 7 的球队。
【问题讨论】:
标签: c# mongodb mongodb-.net-driver mongodb-csharp-2.0