java如何检查值是否至少等于列表中的一个字段?
我有这样的方法:
for (String fieldName : fieldArray) {
Query query = new Query();
query.addCriteria(Criteria.where("data." + fieldName).is("some_constant"));
if (mongoTemplate.find(query, DataPoint.class).size() > 0) {
return true;
}
}
return false;
这段代码看起来效率很低,因为它访问数据库的大小太大了
有没有办法用单个查询替换它
# 1 楼答案
我觉得你可以用^{}
应该是这样的:
这将创建一个
Criteria
列表,用于生成一个条件实例,如果一个条件有效(或一个操作,一个true就足够了),该实例将有效# 2 楼答案
为什么不使用Criteria::in方法并传递一个列表,而不是迭代所有元素并逐个元素进行检查,我认为您只需要以下内容:
除了@Veeram的注释外,如果您想检查一个字段是否可以保存列表中的一个值,第一种方法也可以,但您的问题似乎不同,据我所知,您想检查多个字段中的值出口,要解决这个问题,您可以使用:
对于流,您可以使用:
虽然在运行代码时技术上是正确的,但是
符合Mongodb的代码:
产出: