Dann war der Punkt hier sowohl in der Auswahl für die Index- als auch für die Abfragereihenfolge.
Wenn Sie sich Ihre frühere Ausgabe von .explain()
ansehen Sie werden sehen, dass es einen "min/max"-Bereich für das "t"-Element in Ihrem Ausdruck gibt. Indem Sie das an das Ende der Auswertung verschieben, lassen Sie andere Filterelemente zu, die für den Gesamtausdruck wichtiger sind (bestimmen Sie weniger mögliche Übereinstimmungen von "e" als Hauptfaktor, bevor Sie scannen, obwohl "t" im Grunde "alles" ist) .
Es ist ein bisschen DBA, aber ich glaube, dass dies in der NoSQL-Welt zu einem Programmiererproblem wird.
Sie müssen im Wesentlichen Ihren "kürzesten Übereinstimmungspfad" entlang der ausgewählten Schlüssel konstruieren, um den effektivsten Scan zu erhalten. Aus diesem Grund werden die geänderten Ergebnisse viel schneller ausgeführt.