我有一份文件有另外两份文件的参考。我要根据用户登录和店主的身份进行查询。我怎样才能做到这一点。请建议如何查询。
@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());
最佳答案
您的查询看起来是正确的;您应该能够基于dbref的_id
进行查询。这是因为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()));