基于mongodb的DBRef列表中匹配元素的查询,使用spring数据mongodb



我对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);

相关内容

  • 没有找到相关文章

最新更新