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

MongoDB Multikey Compound Index - Benötigen Sie Hilfe beim Verständnis der Grenzen

Bei zusammengesetzten Indizes, bei denen eines der indizierten Felder ein Array ist, verwendet MongoDB nur entweder eine Unter- oder eine Obergrenze für die Bereichsabfrage, um sicherzustellen, dass korrekte Übereinstimmungen zurückgegeben werden. Siehe SERVER-958 ein Beispiel, bei dem die Einschränkung auf die obere und untere Indexgrenze das erwartete Dokument nicht finden würde.

Wenn sich Ihre Bereichsabfrage auf dem Array-Feld befindet, können Sie möglicherweise den Code $elemMatch -Operator, um Ihre Abfrage innerhalb der erwarteten Indexgrenzen zu optimieren. Wie bei MongoDB 2.4, der $elemMatch -Operator funktioniert nicht bei Nicht-Array-Feldern, daher hilft dies Ihrem Anwendungsfall leider nicht. Sie können SERVER-6050 ansehen/upvoten:Erwägen Sie, $elemMatch auf Nicht-Arrays anzuwenden im MongoDB Issue Tracker.

Es gibt auch ein offenes Problem SERVER-7959:Möglicherweise unerwartete Scans mit zusammengesetzten Indizes, wenn einige Felder aus mehreren Schlüsseln bestehen dieses Verhalten beschreiben.