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

时间:2019-09-25 15:04:16

标签: 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.mongodb.BasicDocument的限制,您   无法添加第二个“ clientName”条件。查询已包含   '{“ clientName”:“ client1”}'

我尝试使用以下条件删除条件:

query.getQueryObject().remove("clientName")

但是似乎它返回了条件的副本,并且没有删除条件。我仍然遇到同样的异常。

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

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

@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”,也可以使用单个条件。

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