2016-10-29 2 views
0

Ich möchte einen Index für beide Felder a und b erstellen, aber ich möchte die b Feld eindeutig sein, nur ich bin mir nicht sicher, wie kann ich dies bei der Verwendung Compound-Index bitte erreichen hier hilft der CodeWie verwende ich Compound-Index in Mongodb mit Java/Scala

var index=collectionMongo("test").createIndex(new BasicDBObject("a", 1)) 

var index1=collectionMongo("test").createIndex(new BasicDBObject("b", 1),new BasicDBObject("unique", true)) 

wie kann ich meine gewünschte Aufgabe in einer Verbindung Index führen Sie bitte

+0

Ich denke, dass Sie den zusammengesetzten Index nur als eindeutig festlegen können, nicht nach Feld. – Veeram

Antwort

0

die Art und Weise sehe ich es helfen, tust du es schon richtig, da index intersection sollte die Verbindung Index Griff für dich. Sie haben einen Index für a und einen eindeutigen Index für b erstellt und Mongo wird beide verwenden, wenn Sie eine Abfrage ausführen, die beide Felder akzeptiert.

Sie überprüfen können, ob der Index richtig, indem Sie db.find({"query involving a and b here"}).explain("executionStats")

Überschneidung Indizes kann günstig sein, eine Verbindung Index verwendet wird, wenn Sie indizieren viele Felder (Einzel- und zusammengesetzt) ​​benötigen, da sie den Speicherplatz reduziert benötigt als ein ganzes.

Verwandte Themen