我有一个具有一个条件的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查询中正确删除条件?
答案 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”,也可以使用单个条件。
我认为,与其删除条件,不如使用上面的函数创建一个新的查询表。