Spring Data MongoDB Aggregation,用于匹配日期之间的日期

时间:2014-12-08 15:09:52

标签: java spring mongodb spring-data-mongodb

我是Spring Data MongoDB和mongodb的新手。 如何使用聚合(Spring Data MongoDB)获取文档的所有脱机条目?

如果条目在线,则onlineFrom和onlineTo字段将填充开始日期和结束日期。 currentDate是java' new Date();'。 如果该条目未联机,则onlineTo和onlineFrom字段不存在(这意味着它处于脱机状态)。

示例条目:

{name:'Foo'}, //offline
{name:'Bar', onlineFrom:'aStartDate', onlineTo:'aEndDate'} //online if currentDate between, otherwise offline

我尝试了许多标准,比如

Aggregation.match(Criteria.where("onlineFrom").gt(currentDate).and("onlineTo").lt(currentDate)
                    .orOperator(Criteria.where("onlineFrom").exists(false).and("onlineTo").exists(false)))

没有成功。

编辑:

我这样解决了:

Aggregation.match(new Criteria().orOperator(Criteria.where("onlineFrom").exists(false),
                    Criteria.where("onlineTo").exists(false),
                    Criteria.where("onlineFrom").gt(currentDate).and("onlineTo").lt(currentDate)))

0 个答案:

没有答案