我想知道在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();
}
感谢他们的回答。
答案 0 :(得分:2)
您可以使用$expr(3.6 mongo版本运算符)在常规查询中使用聚合函数进行日期单位比较。
@Query("{$expr:{$and:[{$eq:[{$year:'$createdDate'}, ?0]}, {$eq:[{$month:'$createdDate'}, ?1]}]}")
List<Customer> findByCustomQuery(into year, int month);