0

次のコードブロックがあります。

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 を無視するタイプですrstringProject

2. 上位 5 チームのみを昇順で取得するにはどうすればよいですか?

ティア。

編集

並べ替え、スキップ、制限のすべてが競技で行われていることに気付きました。もちろん、TeamRanks にも適用したいと考えています。したがって、たとえば、メソッドが count = 7 といくつかの CompetitionId を受け取った場合、メソッドは提供された ID を持つ競技を返す必要があり、その中で上位 7 チームが注文されました..

4

1 に答える 1