mongodb - 存储花费时间的最佳方法是什么(小时 : minutes) in MongoDb?

标签 mongodb mlab

我正在玩一个小型网络应用程序来存储每天花费的任务和时间,并在每周和每月报告中报告。

对于我的后端,我想使用 MongoDb,但无法立即找到存储在任务上花费的时间的最佳方法。 我没有兴趣存储实际的时间范围(开始和停止日期),只是以小时:分钟为单位的时间。

由于我要制作周报和月报,所以我需要能够计算周报和月报的总和。

存储花费时间的最佳方式是什么?

我倾向于只将分钟数存储在 32 位整数中,然后在客户端将其转换为小时:分钟。 (或者更好的是,已经在 Mongodb 聚合查询中转换它,如果可能的话?)

我的任务文件看起来像这样

{
    "task_id": {
        "$oid": "5311a0a4e4b0386017fce592"
    },
    "timeEntry_date": "ISODate('2014-03-02')",
    "timeSpent_minutes": 30
}

这是 MongoDb 的方式吗?

抱歉,如果我在这里陈述显而易见的话,我才刚刚开始学习 MongoDB...

最佳答案

一如既往地在 MongoDB 上“这取决于您的使用情况”。在 MongoDB 中,您应该构建您的“架构”,以便它描述您的应用程序需求而不是您的数据结构。

如果您的应用程序是写密集型的,您应该有一个非常快速和简单的编写过程。例如,您可以存储花费的毫秒数,然后在读取时进行计算

如果你想让你的应用程序读取速度更快,你可以有类似的东西

time_spent: {
  hours: 1,
  minutes: 23,
  seconds: 45
}

在你的文档中

附言我认为

"task_id": {
        "$oid": "5311a0a4e4b0386017fce592"
}

会更好

task_id: "5311a0a4e4b0386017fce592"

关于mongodb - 存储花费时间的最佳方法是什么(小时 : minutes) in MongoDb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126249/

相关文章:

node.js - 无法使用 $project 获取特定的数据库值

javascript - 如何根据数据动态创建 Bootstrap 下拉列表

node.js - Mongoose 在使用 mongolab uri 连接时出错?

node.js - Heroku + MongoLab 插件与 Node.js 应用程序的连接错误 - 错误 : connect ECONNREFUSED 127. 0.0.1:27017

mongodb - 为什么 MongoDB Atlas 是唯一托管的 MongoDB 4+ DBaaS 提供商

mysql - 对于大型数据集,mongoDB 或 Cassandra 是否比 MySQL 更好?

mongodb - MongoDB中的日期比较

node.js - 填写记录中缺失的日期

mongodb - Robomongo : Cannot connect to replica set. Set 的主节点不可达

node.js - 连接到 MongoLab 数据库时验证失败,代码 18