Jag vet inte hur MongoDB C#-bindningen fungerar, men beskriv hur den vanligtvis fungerar:
När du använder IQueryable
ett uttrycksträd konstrueras, översätts sedan till ett format som databasen kan förstå och exekveras sedan i databasservern.
Detta har vanligtvis en liten overhead (konstruera uttrycksträd och översätt det) jämfört med att direkt skriva frågor i det format som databasen förstår.
Med IEnumerable
delegater används istället för uttryck. Den måste iterera över hela datamängden och sedan filtrera med Linq-To-Objects. Det här är mycket långsammare.