sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur använder man vårdata mongo @CompoundIndex med undersamlingar?

Jag har provat den här typen av sammansatt index i min app, som också använder fjäderdata och fungerade korrekt. Du behöver bara korrigera indexdefinitionen i @CompoundIndex anteckning:

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

Om du kör en fråga med explain (som följande) i mongo shell, kommer du att se att indexet *aid_bid_idx* kommer att användas.

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

Resultatet blir ungefär så här:

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


  1. Användningsfall för NoSQL

  2. Stack Overflow, Redis och Cache-ogiltigförklaring

  3. Hur man tar bort ett fält från ett MongoDB-dokument ($unset)

  4. Hur man installerar Apache CouchDB på CentOS 8