node.js - 计算员工的事件时间

标签 node.js mongodb algorithm

我正在尝试为员工创建一个时间表,我将每个事件(事件、非事件)保存为 MongoDB 中的时间戳。如何从给定时间计算员工的事件时间?

{ 
    "_id" : ObjectId("5d8c8dcca4c6010e29140e0e"), 
    "activityAt" : ISODate("2019-09-26T10:07:05.388+0000"), 
    "version" : NumberInt(1), 
    "deleted_at" : null, 
    "event" : "ACTIVE", 
    "employeeId" : ObjectId("5d78fba602c9265fc7ad6273"), 
    "created_at" : ISODate("2019-09-26T10:07:08.479+0000"), 
    "modified_at" : ISODate("2019-09-26T10:07:08.479+0000")
}
// ----------------------------------------------
{ 
    "_id" : ObjectId("5d8c8dcca4c6010e29140e0f"), 
    "activityAt" : ISODate("2019-09-26T11:07:05.388+0000"), 
    "version" : NumberInt(1), 
    "deleted_at" : null, 
    "event" : "INACTIVE", 
    "employeeId" : ObjectId("5d78fba602c9265fc7ad6273"), 
    "created_at" : ISODate("2019-09-26T11:07:08.481+0000"), 
    "modified_at" : ISODate("2019-09-26T11:07:08.481+0000")
}

最佳答案

对于每个“事件”条目,从 ISODate 中获取日期并从中减去当前日期(或任何给定时间)。结果将是员工的所有事件时间。

在伪代码中:

active_time = 0
for entry in db:
    if entry.event == 'ACTIVE':
        active_time = active_time + (current_date - entry.ISODate)
return active_time

您唯一需要做的就是将日期转换为可以减去/添加/等等的内容。一种解决方案是将其转换为小时。

祝你好运!

关于node.js - 计算员工的事件时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58165858/

相关文章:

node.js - 为什么 Meteor-Npm 不断尝试从互联网获取包

javascript - 如何从一个中间件获取另一个中间件中的数据?

mongodb - 如何使用 Spring Data JPA 通过 Id 和设置为 "True"的 bool 值进行查询

algorithm - voronoi 细胞中的质心

node.js - 使用 node.js 将文件从 S3 上传到 Youtube

javascript - 迭代 req.body 到对象

node.js - 防止 NodeJS 中的 MongoDB 多重连接

arrays - 在数组中查找包含空对象的 mongo 文档

database - 我在哪里可以找到有关数据库和文件系统设计的有用信息?

algorithm - 二进制字符串搜索 - 最小 bin 宽度?