使用mongoose对集合进行时间汇总数据

时间:2018-02-22 12:59:32

标签: javascript node.js mongodb mongoose

我使用的是最新版本的mongoose。我的模型看起来像这样:
select delete_referential_action_desc, OBJECT_NAME(f.referenced_object_id) as pktblname, OBJECT_NAME(f.parent_object_id) as fktblname,OBJECT_NAME(o.object_id) as fkname from sys.foreign_keys f join sys.objects o on o.object_id=f.object_id

现在我想创建一个给我一分钟累积的查询。

例如,让我说我的收藏中有3个条目。 a)createdAt:12:50
b)创建时间:12:50
c)createdAt:12:51

如果我想要分钟汇总,我希望得到这样的结果: { id:'', name:'', text:'', createdAt:Date }

我尝试了几种不同的聚合,但它们都没有真正起作用。

1 个答案:

答案 0 :(得分:-1)

我认为最简单的方法之一就是下载所有记录并加以总结。

function getHoursString(date) {
  return `${date.getHours()}:${date.getMinutes()}`;
}

ModelName.find().then((records) => {
  const rollup = {};

  records.forEach((record) => {
    const hoursString = getHoursString(record.createdAt);

    if (rollup[hoursString]) rollup[hoursString]++;
    else rollup[hoursString] = 1;
  });

  console.log(rollup);
});