当前位置: 首页 > 知识库问答 >
问题:

带ObjectId的Mongo日期聚合运算符

宰父宾实
2023-03-14

我试图使用ObjectId作为创建日期持有人,在尝试执行聚合查询时遇到了一些问题。特别是,我们希望使用日期聚合运算符按月份对文档进行分组,但该运算符显然不适用于ObjectId。是否有办法解决这个问题,或者我必须开始在每个文档中使用单独的CreationTime字段?

下面是我尝试的一个查询-

db.People.aggregate([
{
    $match: {
        $or: [{"Name":"Random1"}, {"Name":"Random2"}]
    }
},
{
    $project: {
        Name: "$Name",
        Year: {$year: "$_id"},
        Month: {$month: "$_id"}
    }
},
{
    $group: {
        _id: {Name: "$Name", Year: "$Year", Month: "$Month"},
        TotalRequests: {$sum:1}
    }
}

共有1个答案

凤伟泽
2023-03-14

现在,您需要保留一个单独的字段,因为聚合框架还不能处理这个问题。在https://jira.mongodb.org/browse/server-9406有一个服务器票证来实现它,所以我建议您投赞成票(我刚刚投了)。

 类似资料:
  • 我试图在我的mongo DB中运行一个聚合语句。我有一个文档,其结构(至少)如下: 我想运行一个聚合语句,聚合给定'keyword groupid'和给定'date'间隔的'ranking'字段。 我一直在尝试使用以下聚合命令: 此命令执行时不会出错并返回结果。如果我尝试更改'keyword groupid'字段的值,该命令将返回一个不同的值,因此我假设$match语句适用于该字段(NumberL

  • 我有发票,每张发票都包含一个项目列表。每个项目都有(除其他外)以下字段: 姓名 数量 总计 每张发票都有(除其他外)字段: _id 创建 项目 发票存在于专门的Mongo集合中,称为发票。 我想获取包含指定项目的所有发票,其中每个发票都需要返回以下信息: _id 让我们称之为元组 如果发票列出给定项目两次,则相应的发票将生成两个投影实例。如果发票根本没有列出给定的项目,则结果中不存在此发票。 无论

  • 我有一个带有在线和离线日期的产品pojo 我使用以下查询来获取日期为空或日期为的所有产品。但是以下查询仅在时才返回我。 有线索吗?

  • 大家好,我有一个大问题在查询我的数据。我有这样的文件: 我想构建两个查询: 1)每天计算标签的数量,然后输出,例如,如下所示: 2)另一个是相同的,但我想设置一个期间从2016-12-13到2016-12-17。 对于第一个查询,我编写了这个查询,并得到了我所搜索的内容,但是在Spring Data Mongo中,我不知道如何编写。

  • --------编辑-------------------------------------------- 我在我的服务器行为中发现了一些非常奇怪的东西。当我执行一个简单的findById调用时,我的image项是一个Objectid数组。但是当使用聚合时,ObjecIds变成了String。有人知道上面是什么吗?

  • 问题内容: 是否可以使用JPA / Hibernate执行日期算术?例如,我有一个带有java.util.Date字段的实体,该实体指示何时创建该行。是否可以使用JPQL执行查询并在该字段上包括日期算术?例如,我可以执行COUNT(*)行,然后在该字段中按月份分组吗?我是否可以执行其他功能,例如仅返回查询中该字段的月份或年份? 问题答案: HQL确实有日期这样的表达式,,,,,和,但标准JPQL不