MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wenn das mongodb-Aggregat keine Indizes für $lookup verwendet, warum erhöht sich meine Leistung bei der Verwendung von Indizes?

Leider erwähnt das MongoDB-Handbuch derzeit keine mögliche Indexnutzung für $lookup , aber das ist definitiv der Fall.

Ein einfaches $lookup Eine ähnliche Abfrage wie in Ihrem Beispiel führt eine Gleichheitsübereinstimmung für foreignField durch in einer anderen Sammlung, also haben Sie den richtigen Index hinzugefügt, um die Leistung zu verbessern (vorausgesetzt, dieses Feld ist auch einigermaßen selektiv).

Wie bei MongoDB 4.0 die Indexnutzung für $lookup wird nicht in Aggregation Explain-Ausgabe . Es gibt ein relevantes Problem, das im MongoDB Issue Tracker beobachtet/aufgewertet werden sollte:SERVER-22622:Improve $ Lookup Explain, um den Abfrageplan für die "From"-Sammlung anzugeben .