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());
谢谢inadvance。
我不知道'DateTime'(我认为它不是'Formatter'的静态内部类),但是你检查'month'的值吗?请注意'Date.getMonth()'将返回一个基于0的数字,即8月它将返回7而不是8,如果'month'是8,则不会得到匹配。 – Thomas
是@Thomas这就是为什么我加了'+ 1' – Winnie
我不知道jongo,但总的来说你不需要这种查询的聚合 - 你所描述的只是一个简单的find() 。 – mtj