我有以下代码块:
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 的替代解决方案),但它可以t 似乎工作。问题:
1.
属于第二个r
类型,忽略 TeamRanks。string
Project
2. 怎样才能只获得排名前5的队伍?
TIA。
编辑
我刚才注意到整个排序、跳过和限制都是在比赛中完成的,我当然希望它应用于 TeamRanks。因此,例如,如果该方法接收到 count = 7 和一些 CompetitionId,则该方法需要返回具有提供的 id 的比赛,并在其中返回排序的前 7 支球队。