मैंने अपने ऐप में इस तरह के कंपाउंड इंडेक्स की कोशिश की है, जो वसंत डेटा का भी उपयोग करता है, और ठीक से काम करता है। आपको केवल @CompoundIndex
में इंडेक्स परिभाषा को सही करना होगा एनोटेशन:
@CompoundIndex(name = "aid_bid_idx", def = "{'id' : 1, 'b.id' : 1}")
@Document(collection = "doc_a")
public class A {
@Field("id")
private Integer id;
@Field("b")
private Collection<B> b;
...
}
public class B {
@Field("id")
private Integer id;
...
}
यदि आप मानगो शेल में व्याख्या (जैसे निम्न) के साथ कोई क्वेरी चलाते हैं, तो आप देखेंगे कि अनुक्रमणिका *aid_bid_idx* का उपयोग किया जाएगा।
db.doc_a.find({ "id" : 1, "b.id" : 1}).explain()
परिणाम कुछ इस तरह होगा:
{
"cursor" : "BtreeCursor aid_bid_idx",
...
}