免责声明:我是MongoDB的新手。我几天前才开始使用它。对不起,如果我的问题没有多大意义。
你好,
我正在尝试从Java方法对MongoDB进行查询,我想仅在该参数不为null时创建并进行查询。那么让我们说我的方法是
public List<Object> getSomethingFromMongoDB(String searchParameter){
Query query = new Query().addCriteria(Criteria.where("something").is((searchParameter)));
}
现在我只想搜索SearchParameter时它只是非空。我能以更好的方式做到这一点吗?我试图检查$ ne但无法理解如何在我的Java方法中应用它。
提前致谢
答案 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来摆脱空检查行。