Due to limitations of the com.mongodb.BasicDocument, you can't add a second 'null' criteria. Query already contains '{ "$or" : [{ "createUser" : 1571760472175280129}, { "dealUser" : 1571760472175280129}]}'
时间: 2024-04-27 21:20:47 浏览: 257
计算模型与算法技术:12-Coping with the Limitations of Algorithm Power.ppt
这个错误通常是由于在构建MongoDB查询时,使用了两次空的Criteria对象(即null)。在MongoTemplate中,当您使用多个Criteria对象构建查询时,每个Criteria对象都必须是非空的。
根据错误信息,您的查询已经包含了一个非空的Criteria对象,它是一个包含两个$or操作符的Criteria对象。因此,您不能再使用一个空的Criteria对象来构建查询。
请检查您的查询代码,确保没有使用两个空Criteria对象。如果您想添加更多的查询条件,可以使用其他的Criteria对象来构建它们,然后将它们组合成一个Criteria对象。
以下是一个示例代码,其中包含多个Criteria对象:
```java
Criteria criteria1 = Criteria.where("createUser").is(1571760472175280129);
Criteria criteria2 = Criteria.where("dealUser").is(1571760472175280129);
Criteria criteria3 = Criteria.where("status").is("active");
Criteria finalCriteria = new Criteria().orOperator(criteria1, criteria2).andOperator(criteria3);
List<Document> result = mongoTemplate.find(Query.query(finalCriteria), Document.class, "collectionName");
```
在这个例子中,我们使用了三个非空的Criteria对象,然后将它们组合成一个Criteria对象。最后,我们将组合后的Criteria对象传递给MongoTemplate的find方法。
如果您仍然遇到错误,请提供更多详细信息,以便我可以更好地帮助您解决问题。
阅读全文