mongodb - 在mongodb查询中按日期分组而不考虑时间

标签 mongodb mongodb-query mongo-java

我有以下代码:

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/

相关文章:

bash - 在 MongoDB 查询中使用 shell 变量

java - 玩! 2 Framework - 添加Java Mongo驱动

java - MongoDB + Java : no $db stored with DbRef?

node.js - 表示 cookieSession 和 Mongoose : how can I make request. session.user 是 Mongoose 模型?

node.js - Mongoose 'minimize' 空嵌套对象

mongodb - 选择字段不存在、为空或为假的 MongoDB 文档?

mongodb - 使用更新操作将字段转换为数组

java - 蒙戈Java : How to serialize DBObject as JSON on file?

javascript - Mongoose :$sum if 条件

jquery - jsonp ajax 请求中的错误字符集