在mongodb中按年份和月份获取所有文档

时间:2018-02-16 23:10:44

标签: java mongodb spring-boot spring-data

我想知道在mongodb中是否存在一种不使用聚合操作的方法,因为我知道这个函数有更多用途,我不确定这是否正确(我错了吗?) 。我在SQL中搜索任何更简单的东西,例如:

SELECT * FROM Customer WHERE YEAR(createdDate) = 2018 AND MONTH(createdDate) = 1

我正在使用弹簧数据mongodb的弹簧启动:

@Repository
public interface CustomerRepository extends MongoRepository<Customer, String>{

     @Query("{query}")
     List<Customer> findByCustomQuery();

}

感谢他们的回答。

1 个答案:

答案 0 :(得分:2)

您可以使用$expr(3.6 mongo版本运算符)在常规查询中使用聚合函数进行日期单位比较。

@Query("{$expr:{$and:[{$eq:[{$year:'$createdDate'}, ?0]}, {$eq:[{$month:'$createdDate'}, ?1]}]}")
List<Customer> findByCustomQuery(into year, int month);