查找用户是否在特定日期过生日

时间:2016-08-03 10:24:06

标签: java mongodb jongo

假设我有一组用户,每个用户都以ISODate日期格式过生日。例如。 ISODate("1958-03-23T00:00:00.000Z")。我如何使用jongo聚合查询来获取当天生日的用户。这是我目前所拥有的,但即使有生日用户,它也不会返回任何结果:

Date dateOfBirth = new Date();  
Integer month = new DateTime(dateOfBirth).getMonthOfYear();
Integer day = new DateTime(dateOfBirth).getDayOfMonth();
List<User> users= IteratorUtils.toList(userJongo.aggregate(" 
    {$project:_id:1,dateOfBirth:1,name:1}}")
    .and("{$match :{dateOfBirth.getDate(): {$eq: '"+day+"'}}}")
    .and("{$match :{dateOfBirth.getMonth()+1: {$eq:'"+month+"'}}}")
    .and("{$limit:"+limit+"}"
    .as(User.class).iterator());

感谢inadvance。

1 个答案:

答案 0 :(得分:0)

如何将用户生日保存为字符串并为该字段添加索引。 在这种情况下,您的表现会增加。 你肯定不想使用聚合。 就在查询获取当前日期之前 - >格式化为保存到DB中的字符串 - &gt;运行db.find({birthDate:“0425(这是4月25日)”}) - &gt;获得结果后做任何你想做的事。