嵌入式文档内部字段的Spring数据mongo db查询(DBRef)

Arc*_*hit 3 spring mongodb mongodb-query spring-data-mongodb

我有一个文件,其中有两个其他文件的参考.我必须在UserLogin和shopmaster的id的基础上查询.我怎么能做到这一点.请建议如何查询.

@Id
private String userShopAssociationId;

@DBRef
private UserLogin userLogin;

@DBRef
private ShopMaster shopMaster;

Query query = new Query();
query.addCriteria(Criteria.where("userLogin.$id").is(userShopAssociationForm.getUserLoginId()));
query.addCriteria(Criteria.where("shopMaster.$id").is(userShopAssociationForm.getShopMasterId());
Run Code Online (Sandbox Code Playgroud)

Gre*_*ter 5

您看起来正确的查询; 您应该能够基于_idDBRef 进行查询.这是因为DBRef将集合,id和(有时)数据库存储在父文档中.但是,您可能需要将要比较的ID转换为ObjectId如此:

Query query = new Query();
query.addCriteria(Criteria.where("userLogin.$id").is(new ObjectId(userShopAssociationForm.getUserLoginId())));
query.addCriteria(Criteria.where("shopMaster.$id").is(new ObjectId(userShopAssociationForm.getShopMasterId()));
Run Code Online (Sandbox Code Playgroud)