次のコードブロックがあります。
var r = this.collections.competitions.Find(filter)
.Project(x => x.TeamRanks)
.Project(t => t.Logo)
.Sort(sort)
.Skip(prev)
.Limit(count)
.Single();
私は3つのフィールドを持つこのCompetition
コレクションを持っています
Class Competition {
public ObjectId _Id;
public string Logo;
public List<string> TeamRanks
}
ここのフィルターは にありCompetition._Id
ます。ロゴとランクの昇順で最初の 5 つのランク付けされたチームを取得したい (count
値によって与えられる) リストは巨大になる可能性があるため、ここで Project (または Fields を使用した代替ソリューション) を使用したいのですが、それはできません。うまくいかないようです。問題:
1.
2 番目で、TeamRanks を無視するタイプですr
。string
Project
2. 上位 5 チームのみを昇順で取得するにはどうすればよいですか?
ティア。
編集
並べ替え、スキップ、制限のすべてが競技で行われていることに気付きました。もちろん、TeamRanks にも適用したいと考えています。したがって、たとえば、メソッドが count = 7 といくつかの CompetitionId を受け取った場合、メソッドは提供された ID を持つ競技を返す必要があり、その中で上位 7 チームが注文されました..