MongoDB存储库按接受值列表中的where参数查找

时间:2015-10-12 12:21:23

标签: java mongodb spring-boot mongorepository

Java Spring-boot 中,我正在尝试使用 MongoRepository finder方法查找集合中的所有文档属性的值在可接受值的集合中。

我的例子如下:

我的豆子:

@Document
public class A {
    // some attributes
    private MyEnum enumValue;
}

我的存储库:

public interface MyRepository extends MongoRepository<A, String>{

我的服务:

@Service
public class MyService {

    @Autowired
    private MyRepository myRepository;

    public List<A> generateList(List<MyEnum> acceptedValues){
        myRepository.findBy????();
    }
}

我可以调用哪个finder方法来获取属性A#myEnum包含在acceptedValues列表中的所有文档?

1 个答案:

答案 0 :(得分:0)

我找到了这个有效的解决方案,即使它不是最佳的:

@Service
public class MyService {

    @Autowired
    private MyRepository myRepository;

    public Set<A> generateList(List<MyEnum> acceptedValues){
        Set<A> res = new HashSet<A>();
        for (MyEnum e : acceptedValues){
            res.addAll(myRepository.findByMyEnum(e));    
        }
        return res;
    }
}