sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat jarní data mongo @CompoundIndex s dílčími kolekcemi?

Vyzkoušel jsem tento druh složeného indexu ve své aplikaci, který také používá jarní data, a fungoval správně. Musíte pouze opravit definici indexu v @CompoundIndex anotace:

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

Pokud spustíte dotaz s vysvětlením (jako je následující) v mongo shell, uvidíte, že bude použit index *aid_bid_idx*.

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

Výsledek bude něco takového:

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


  1. Aktualizace vnořených polí v mongodb

  2. Sloučení dvou kolekcí v MongoDB

  3. Vícenásobné použití pozičního operátoru `$` k aktualizaci vnořených polí

  4. Seskupte a počítejte s podmínkou