Jag kommer tillbaka för att återkomma till det här efter 4 år, för även om min ursprungliga förmodan fungerade så fungerade det på fel sätt, vilket var att det drog tillbaka alla poster från Mongo och sedan filtrerade dem i minnet och för att förena saker gjorde det ett synkront samtal in i databasen vilket alltid är en dålig idé.
Magin händer i LinqKits expanderande förlängningsmetod
Det plattar ut anropsuttrycksträdet till något som Mongo-föraren kan förstå och därmed agera på.
.Where(predicate.Expand())