我有以下代码:
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 中是否有类似 date 的 mongodb 函数可以做到这一点?
有人可以帮忙吗?
更新:
我认为这可能会有所帮助,但仍然不知道该怎么做: link that might help
最佳答案
解决方案取决于您是否需要将结果“Date”作为 ISODate() 类型,或者是否可以将其作为字符串返回。
如果你对字符串没问题,新版本的 MongoDB (3.0) 推出 $dateToString投影算子。
如果必须是 ISODate(),您可以使用我在这篇博文中详细描述的技巧:http://www.kamsky.org/stupid-tricks-with-mongodb/stupid-date-tricks-with-aggregation-framework
关于mongodb - 在mongodb查询中按日期分组而不考虑时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29015849/