关于从Java查询MongoDB的更好方法

时间:2018-04-21 06:56:22

标签: java database mongodb

免责声明:我是MongoDB的新手。我几天前才开始使用它。对不起,如果我的问题没有多大意义。

你好,

我正在尝试从Java方法对MongoDB进行查询,我想仅在该参数不为null时创建并进行查询。那么让我们说我的方法是

public List<Object> getSomethingFromMongoDB(String searchParameter){
Query query = new Query().addCriteria(Criteria.where("something").is((searchParameter)));
}

现在我只想搜索SearchParameter时它只是非空。我能以更好的方式做到这一点吗?我试图检查$ ne但无法理解如何在我的Java方法中应用它。

提前致谢

1 个答案:

答案 0 :(得分:0)

我会建议如下:

public List<Document> getSomethingFromMongoDB(List<String> searchParameters){
        List<Document> results = new ArrayList<>();
        if (searchParameters == null) return results;
        Document criteria = new Document();
        searchParameters.forEach(parameter -> criteria.append("yourField",parameter));
        collection.find(criteria).iterator().forEachRemaining(results::add);
        return results;
}

如果参数列表为空,您将获得所有文档。

如果没有,将适用相应的标准。

你甚至可以通过确保传递new ArrayList()而不是null来摆脱空检查行。