我对mongodb还很陌生。我使用spring数据mongodb从java进行查询。如果这是可以实现的,请指导我。
假设我有两个对象"汽车"one_answers"用户"如下,其中汽车有用户列表,
Class Car {
@Id
String id;
String model;
@DBRef
List<User> users;
@DBRef
Company company;
}
Class User {
@Id
String id;
String name;
}
我想为一个用户找到所有的汽车,(找到car.users给用户的所有汽车)
是否可以使用spring数据mongodb实现?
如果只有一个DBRef元素,这很容易,例如,对于公司,我可以编写这样的查询,
new Query(Criteria.where("company.$id").is(new ObjectId(companyId)))
但是,如果有一个引用为DBRef的元素列表,如何实现这一点??
谢谢你的帮助。
查询数组中的一个元素与查询字段相等完全相同。您可以在这里阅读MongoDB文档。因此,您的查询将是:
new Query(Criteria.where("users.$id").is(new ObjectId(userId)))
在存储库接口中,在方法上键入此查询:
@Query("{'company' :{'$ref' : 'company' , '$id' : ?0}}")
Company find(String companyId);