Java 如何在Spring Mongo查询中删除条件
我有一个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
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或运算符而变得复杂。构建新的查询也会很复杂,而不是简单地删除一个条件。