我有以下代码:
DBObject groupFields = new BasicDBObject("_id", "$Date");
groupFields.put("count", new BasicDBObject("$sum", 1));
DBObject groupBy = new BasicDBObject("$group", groupFields);
stages.add(groupBy);
DBObject project = new BasicDBObject("_id", 0);
project.put("count", 1);
project.put("Date", "$_id");
stages.add(new BasicDBObject("$project", project));
DBObject sort = new BasicDBObject("$sort", new BasicDBObject("Date", 1));
stages.add(sort);
按日期分组并显示工作正常的计数,但问题是我的日期格式如下:
“日期”:ISODate(“2014-11-19T04:11:22.000Z”)
并且您可以看到它也有时间,但我想按日期分组而不考虑时间,所以我想考虑这样的日期:
2014-11-19T04:00:00.000Z但是我不知道该怎么做...有没有像mysql中的日期这样的mongodb函数呢?
有人可以帮忙吗?
更新:
我认为这可能会有所帮助,但仍然不知道该怎么做: link that might help
答案 0 :(得分:3)
解决方案取决于您是否需要将结果“Date”作为ISODate()类型,或者是否可以将其作为字符串返回。
如果你对字符串没问题,新版本的MongoDB(3.0)引入了$dateToString投影操作符。
如果必须是ISODate(),您可以使用我在此博客文章中详细描述的技巧:http://www.kamsky.org/stupid-tricks-with-mongodb/stupid-date-tricks-with-aggregation-framework