MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment utiliser les données de printemps mongo @CompoundIndex avec des sous-collections ?

J'ai essayé ce type d'index composé dans mon application, qui utilise également des données de ressort, et a fonctionné correctement. Vous n'avez qu'à corriger la définition de l'index dans @CompoundIndex annotation :

@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;
  ...
} 

Si vous exécutez une requête avec expliquer (comme ci-dessous) dans mongo shell, vous verrez que l'index *aid_bid_idx* sera utilisé.

db.doc_a.find({ "id" : 1, "b.id" : 1}).explain()

Le résultat ressemblera à ceci :

{
    "cursor" : "BtreeCursor aid_bid_idx",
    ...
}