我如何使用 mongoDB 根据时间间隔对数百万个文档网进行分组

问题描述 投票:0回答:1

我在 mongodb 集合中有数百万文档。

我想根据分钟和小时间隔对文档进行分组。 我创建了时间戳索引。 我尝试了下面提到的查询,但花费了太多时间或超时。

[ {
  _id: {
    interval: {
      $minute: {
        $toDate: {
          $multiply: ["$timestamp", 1000],
        },
      },
    },
  },
  timestamp: {
    $first: "$timestamp",
  },
  count: {
    $sum: 1,
  },
} ]

我该如何解决这个问题。

我尝试使用 **skip ** 和 **limit ** 我仍然面临同样的问题。

node.js mongodb express mongodb-query
1个回答
0
投票

请检查一下,可能会有所帮助。

{
  _id: {
    interval: {
      $dateToString: { format: "%Y-%m-%d %H:%M", date: { $toDate: "$timestamp" } 
}
    }
  },
  timestamp: { $first: "$timestamp" },
  count: { $sum: 1 }
}
© www.soinside.com 2019 - 2024. All rights reserved.