2016-09-15 2 views
0

J'essaie d'interroger un objet sans référence imbriquée en utilisant Spring et mongo DB. Par exempleMongoDB + Spring: requête Get Object sans @DBRef referenceObjects

@Document 
public class A { 
    @Id 
    private String id; 
    private String data; 
    @DBRef 
    private B b; 
} 

@Document 
public class B { 
    @Id 
    private String id; 
    private String data; 
} 

Je veux obtenir un objet sans référence. Interrogation A

public List<A> getAllA(String id) { 
    Query query = new Query(); 
    query.addCriteria(Criteria.all()); 
    List<A> aList = null; 
    aList = mongoOperations.findOne(query, A.class); 
    return aList; 
} 

retour, je ne veux pas imbriqué objet b:

[{ 
    "_id": "AId..", 
    "data": "Adata..", 
    "b":{ 
     "id":"BId..", 
     "data":"Bdata" 
    } 
}] 
+1

Pourquoi ne pas simplement ignorer 'b'? – Actorclavilis

+0

Lorsque A et B ont des objets trop imbriqués, ils affectent les performances d'interrogation. –

Répondre

0

Ne comptez pas les champs.

Query query = new Query(); 
query.addCriteria(<query criteria>); 
query.fields().exlude("b");