2016-09-15 88 views
0

我想查询没有使用Spring和mongo数据库的嵌套引用的对象。 例如MongoDB + Spring:查询没有@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; 
} 

返回,我不想让嵌套的B对象:

[{ 
    "_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");