2016-09-15 4 views
0

Я пытаюсь запросить объект без вложенной ссылки, используя Spring и mongo DB. НапримерMongoDB + Spring: Query Get Object без @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; 
} 

Я хочу, чтобы получить объект без ссылки. запрашивая

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

Возвращения, я не хочу, чтобы получить вложенный объект б:

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

Почему вы не можете просто игнорировать 'b'? – Actorclavilis

+0

Когда A и B имеют слишком вложенные объекты, влияют на производительность запросов. –

ответ

0

Исключить поля.

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