0

假设我有一组用户,每个用户都有一个 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());

预先感谢。

4

1 回答 1

0

如何将用户生日保存为字符串并向该文件添加索引。在这种情况下,你的表现会提高。你肯定不想使用聚合。就在查询获取当前日期-> 格式为您保存到数据库中的字符串之前-> 运行 db.find({birthDate: "0425(this is april 25)"})-> 在获得结果后做任何你想做的事情。

于 2016-08-03T20:54:42.467 回答