Spring Data MongoDB 日期之间

2022-01-18 00:00:00 spring java spring-data mongodb-java

我用的是spring data mongodb.

I use spring data mongodb.

我想要两个日期之间的记录.以下 MongoDB 查询有效:

I want the records between two dates. The following MongoDB Query works:

db.posts.find({startDate: {$gte: start, $lt: end}});

我尝试的 Spring 数据查询对象代码翻译不起作用:

My attempted Spring data query object code translation does not work:

Query query = new Query();
query.addCriteria(Criteria.where("startDate").gte(startDate)
                            .and("startDate").lt(endDate));

构建我需要的 Mongo 查询的方法调用的正确顺序是什么?

What is the correct order of method calls to build the Mongo query I need?

推荐答案

不要在您的标准中包含 'and("startDate")' 部分.

Do not include the 'and("startDate")' part in your criteria.

而不是:

query.addCriteria(Criteria.where("startDate").gte(startDate).and("startDate").lt(endDate));

你应该使用:

query.addCriteria(Criteria.where("startDate").gte(startDate).lt(endDate));

当您包含 'and("startDate")' 部分时,Mongo 将其视为同一属性上的两个不同条目.

When you include the 'and("startDate")' part, Mongo see's it as two different entries on the same property.

相关文章