Tôi đã thử loại chỉ mục phức hợp này trong ứng dụng của mình, cũng sử dụng dữ liệu mùa xuân và hoạt động bình thường. Bạn chỉ phải sửa định nghĩa chỉ mục trong @CompoundIndex
chú thích:
@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;
...
}
Nếu bạn chạy một truy vấn có giải thích (như sau) trong mongo shell, bạn sẽ thấy rằng chỉ mục * aid_bid_idx * sẽ được sử dụng.
db.doc_a.find({ "id" : 1, "b.id" : 1}).explain()
Kết quả sẽ như thế này:
{
"cursor" : "BtreeCursor aid_bid_idx",
...
}