我有一段代码出错 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = sdf.parse("2023-05-21 16:00:00"); Date date2 = sdf.parse("2023-05-22 16:00:00"); Criteria criteria = Criteria.where("monitorDate").in(date1, date2); Query query = Query.query(criteria).with(sort); query.addCriteria(criteria); 报错为g.springframework.data.mongodb.InvalidMongoDbApiUsageException: Due to limitations of the com.mongodb.BasicDocument, you can't add a second 'monitorDate' criteria. Query already contains '{ "monitorDate" : { "$in" : [{ "$date" : 1684656000000 }, { "$date" : 1684742400000 }] } }' at org.springframework.data.mongodb.core.query.Query.addCriteria(Query.java:103) 帮忙分析一下
时间: 2024-04-27 12:19:41 浏览: 103
JavaScript实现的SimpleDateFormat
4星 · 用户满意度95%
这个错误是因为你在添加查询条件时重复添加了名为"monitorDate"的条件。在你的代码中,你已经通过`Criteria.where("monitorDate").in(date1, date2)`添加了一个名为"monitorDate"的查询条件,然后又通过`query.addCriteria(criteria)`再次添加了这个条件。
如果你只想在查询中添加一个名为"monitorDate"的条件,你可以这样做:
```
Criteria criteria = Criteria.where("monitorDate").in(date1, date2);
Query query = Query.query(criteria).with(sort);
```
如果你想添加多个条件,你可以创建一个`Criteria`对象,然后使用它来添加多个条件。例如:
```
Criteria criteria = new Criteria();
criteria.andOperator(
Criteria.where("monitorDate").in(date1, date2),
Criteria.where("someOtherField").is("someValue")
);
Query query = Query.query(criteria).with(sort);
```
这将在查询中添加名为"monitorDate"和"someOtherField"的两个条件。
阅读全文