Lo he leído solo para consultas OR como:
find($or [{field1:a}, {field2:b}])se creará un índice para cada campo (simple o compuesto con los campos como prefijo). Para consultas AND como:
find(field1:a, field2:b)se creará un índice compuesto para cubrirlo en su totalidad. Pero, ¿qué hacer cuando una consulta tiene AND y OR juntos?
find($or[field1:a, field2:b], field3:c, field4:d)¿Cuáles son todos los índices que se crearán en este caso?
Mongo DB 4.4.6
TL; DR: Probablemente no necesite un índice compuesto aquí, sino índices de campo individuales en las consultas de mayor cardinalidad y demanda de rendimiento.
Los índices compuestos son muy útiles cuando su patrón AND es predeciblemente jerárquico. Si se crea un índice compuesto en los campos A,B,C, entonces una consulta en A será rápida, A,B será rápida y A,B,C será (realmente) rápida. La consulta solo en B no puede usar el índice, ni B, C ni C.
Si ejecuta su consulta con explain(true) y examina el resultado, verá que se pueden usar múltiples índices para $or y $and tipos de consultas.