Spring Data Mongo DB查询嵌入式文档(DBRef)中的内部字段

3

我有一个文档,其中包含两个其他文档的引用。我需要根据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());
1个回答

5
您的查询看起来是正确的;您应该能够根据DBRef的_id进行查询。这是因为DBRef在父文档中存储集合、id和(有时)数据库。然而,您可能需要将所比较的ids转换为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()));

如果不是一个dbref呢? - vinicius gati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接