Samlingsskanningen i din explain-utdata hänvisar till map_levels samling, som anges i queryPlanner.namespace värde. $lookup steg slår samman data från en annan samling till den aktuella pipeline. Eftersom du inte har angett några frågesteg före $lookup , map_levels samlingen upprepas med en samlingsskanning. Om en hel samling laddas utan några filtrerings- eller sorteringskriterier, har en samlingsskanning mindre overhead än att iterera ett index och hämta dokumenten.
Du kan undvika den aktuella samlingsskanningen genom att lägga till en $match steg före din $lookup (förutsatt att du inte vill bearbeta alla map_levels samling).
Tyvärr indikerar inte frågeförklaringsutdata (som vid MongoDB 4.0) indexanvändning för $lookup etapper. En lösning för detta skulle vara att köra förklara med din uppslagnings pipeline som en aggregeringsfråga på toppnivå.
Det finns ett relevant problem att se/rösta upp i MongoDB Issue Tracker:SERVER-22622:Förbättra $lookup förklara för att ange frågeplan på "från"-samlingen .