Frage

sagen, ich habe ein Item Dokument mit: Preis und: Menge Feldern aus. Ich möchte manchmal alle Dokumente finden, um eine gegebene Anpassung: Preis AND: Menge, und zu anderen Zeiten wird es entweder: Preis für sich allein oder: Menge auf eigene

.

Ich habe bereits indiziert die: Preis und: Menge Tasten, aber ich auch eine Verbindung Index auf beide zusammen erstellen muß oder ist der einzige Schlüsselindizes genug

Edit: Ich habe diesen Artikel auf der Website mongodb sehr nützlich:

http://www.mongodb.org/display/DOCS/ Indexing + Beratung + und + FAQ

War es hilfreich?

Lösung

Ein Index für price hilft bei Abfragen auf price. Ein Index für qty hilft bei Abfragen auf qty. Ein Index für price und qty hilft bei Abfragen auf price und Abfragen auf price und qty. Also, es ist wie immer zwei Indizes für den Preis von einem. Es wird nicht für Abfragen auf qty helfen, though.

Sie sollten die Anzahl der Indizes minimieren Sie haben, fallen so eine Ihrer Single-Schlüsselindizes und erstellen Sie eine Verbindung Index mit diesem Schlüssel zu starten.

Als allgemeine Regel gilt, wenn Sie eine Abfrage auf x, y tun, und z, sollten Sie einen Index wie {x:1, y:1, z:1} haben. Dieser Index wird die folgenden Abfragen machen schnell:

db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})

Es wird nicht diese Abfragen machen schnell:

db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})

Also, stellen Sie sicher, dass Ihre Abfrage hat die Starttaste (n) eines Index in es.

Andere Tipps

Wenn Sie brauchen: Preis für sich allein oder:. Menge auf eigene dann eine Verbindung Index wird nicht funktionieren

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top