optimize featured swiss aggregation and send it to secondary

dark-default
Thibault Duplessis 2021-11-04 10:22:38 +01:00
parent 050ba455d7
commit 7ad5f44af8
1 changed files with 4 additions and 2 deletions

View File

@ -62,9 +62,10 @@ final class SwissFeature(
}
}
// causes heavy team reads
private def cacheCompute(startsAtRange: Bdoc, nb: Int = 5): Fu[List[Swiss]] =
colls.swiss
.aggregateList(nb) { framework =>
.aggregateList(nb, ReadPreference.secondaryPreferred) { framework =>
import framework._
Match(
$doc(
@ -74,6 +75,8 @@ final class SwissFeature(
"garbage" $ne true
)
) -> List(
Sort(Descending("nbPlayers")),
Limit(nb * 50),
PipelineOperator(
$lookup.pipeline(
from = "team",
@ -87,7 +90,6 @@ final class SwissFeature(
)
),
UnwindField("team"),
Sort(Descending("nbPlayers")),
Limit(nb)
)
}