Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring Mongo查询中删除条件_Java_Spring_Mongodb_Spring Boot - Fatal编程技术网

Java 如何在Spring Mongo查询中删除条件

Java 如何在Spring Mongo查询中删除条件,java,spring,mongodb,spring-boot,Java,Spring,Mongodb,Spring Boot,我有一个Mongo查询org.springframework.data.mongodb.core.query.query,其中有一个条件,我想通过添加具有不同值的相同条件来更新此条件: query.addCriteria(Criteria.where("clientName").is("client2")); 但这会引发: 方法抛出 'org.springframework.data.mongodb.InvalidMongoDbApiUsageException' 例外。由于com.mongo

我有一个Mongo查询
org.springframework.data.mongodb.core.query.query
,其中有一个条件,我想通过添加具有不同值的相同条件来更新此条件:

query.addCriteria(Criteria.where("clientName").is("client2"));
但这会引发:

方法抛出 'org.springframework.data.mongodb.InvalidMongoDbApiUsageException' 例外。由于com.mongodb.BasicDocument的限制,您 无法添加第二个“clientName”条件。查询已包含 “{”clientName:“client1”}”

我已尝试使用以下方法删除标准:

query.getQueryObject().remove("clientName")
但它似乎返回了标准的副本,并且没有删除标准。我仍然得到同样的例外

如何在Mongo query中正确删除条件?

您可以执行以下操作:

@Autowired
private MongoTemplate mongoTemplate;

public Query queryName(Type1 value1, Type2 value2) {
    Query query = new Query(new Criteria().orOperator(Criteria.where("field1").is(value1), Criteria.where("field2").is(value2)));
}
请注意,您可以根据需要将“orOperator”更改为“andOperator”,否则可以使用单个条件

我认为,您不应该删除条件,而应该使用上述函数创建一个新查询。

您可以执行以下操作:

@Autowired
private MongoTemplate mongoTemplate;

public Query queryName(Type1 value1, Type2 value2) {
    Query query = new Query(new Criteria().orOperator(Criteria.where("field1").is(value1), Criteria.where("field2").is(value2)));
}
请注意,您可以根据需要将“orOperator”更改为“andOperator”,否则可以使用单个条件


我认为,与其删除条件,不如使用上述函数创建一个新查询。

有时我的查询中有许多条件,希望避免进行新查询。有时我的查询中有许多条件,希望避免进行新查询。对此有何更新?如果你能在这里发布你的解决方案,那就太好了。我有类似的情况,需要从查询中删除一个特定的条件,这可能会因为多个and或运算符而变得复杂。构建新的查询也会很复杂,而不是简单地删除一个条件。对此有任何更新吗?如果你能在这里发布你的解决方案,那就太好了。我有类似的情况,需要从查询中删除一个特定的条件,这可能会因为多个and或运算符而变得复杂。构建新的查询也会很复杂,而不是简单地删除一个条件。