按记录之间的时差分组

时间:2018-07-10 22:29:04

标签: mongodb aggregation-framework

我的数据库中充满了记录:

{date: ISODate("2018-01-01T00:00Z"), data: 'A'}
{date: ISODate("2018-01-01T02:00Z"), data: 'B'}
{date: ISODate("2018-01-01T10:00Z"), data: 'C'}
{date: ISODate("2018-01-01T16:00Z"), data: 'D'}
{date: ISODate("2018-01-01T18:00Z"), data: 'E'}
{date: ISODate("2018-01-01T20:00Z"), data: 'F'}
{date: ISODate("2018-01-01T22:00Z"), data: 'G'}

当它们之间的时间差小于N时,我想将记录分组在一起。

例如,当N = 3小时时,第一个容器应包含A,B,第二个容器应包含C,最后一个容器应包含D,E,F,G。

MongoDB的聚合或mapReduce是否可能?

1 个答案:

答案 0 :(得分:0)

您不能使用mongodb聚合来做到这一点,因为您当前无法访问2个文档的值。更接近的解决方案是使用$ bucket框架阶段。