sql >> Database >  >> NoSQL >> MongoDB

Hoe gebruik je spring data mongo @CompoundIndex met subcollecties?

Ik heb dit soort samengestelde index in mijn app geprobeerd, die ook springgegevens gebruikt, en dat werkte naar behoren. Je hoeft alleen de indexdefinitie in @CompoundIndex te corrigeren annotatie:

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

Als je een query uitvoert met explain (zoals hieronder) in mongo shell, zul je zien dat de index *aid_bid_idx* zal worden gebruikt.

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

Het resultaat zal ongeveer als volgt zijn:

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


  1. Hoe JSON-gegevens te retourneren vanuit php MongoCursor

  2. Krijgt u een verbindingsfout bij het gebruik van redis-trib.rb om een ​​cluster te maken?

  3. MongoDB voor elk()

  4. MongoDB gaat Sharding gebruiken met $lookup Aggregation Operator