gpt4 book ai didi

ios - ios 和 mongodb 的时间戳选择,moment.js

转载 作者:行者123 更新时间:2023-11-29 02:36:04 33 4
gpt4 key购买 nike

各位, 我应该使用哪个来存储时间戳?我目前正在编写一个 API 服务,它将时间戳存储在 MongoDB 中。这些时间戳对我来说很重要,因为我需要按时间范围查询数据库...即返回过去一小时或特定日期之间存储的所有文档。

IOS 应用程序向我发送具有以下 ISO8601 时间戳的对象:

2014-10-09T18:00:48+01:00

如果我将这些直接存储到 mongo 中,文档看起来像:

{
"_id" : "2B6127C1-4E25-4271-B5A4-2CA9FEA4E1C3",
"timestamp" : "2014-10-09T18:00:48+01:00"
}

我可以轻松地将其插入到 mongo 中,但在我看来,我应该这样做 object.timestamp = moment(object.created).toDate();

这会产生:

2014-10-09T18:00:48+01:00

文档在 mongo 中看起来像这样:

{
"_id" : "2B6127C1-4E25-4271-B5A4-2CA9FEA4E1C3",
"timestamp" : ISODate("2014-10-09T13:00:48.000-04:00")
}

我应该将它们转换为unix epoch 格式吗?我不太熟悉 ISO 时间戳格式的差异...我认为在第一个示例中,IOS 向我发送了 ISO8601 格式时间戳。这是行业标准吗?

我已阅读多个主题,包括 Best way to store date/time in mongodb ,在我看来,我正在正确的轨道上将从 ios 获得的时间戳转换为 native JavaScript 日期对象。

当用户检索这些对象时,我是否应该将此存储的对象转换为 ISO8601 格式?

最佳答案

以最原生的格式存储可以让您使用更多的原生功能。 Mongo 的查询或聚合 API 可以将 $gt$lte 与 native 日期一起使用。这对于查询非常方便。使用“代表日期的字符串”来做这些类型的事情要困难得多。

从 1970 年开始以毫秒为单位存储,或其他方式,工作方式相同,但由于 ISODate 是 Mongo 可识别的类型,只需使用它即可。

此外,moment.js 也不错。这是一个有趣的库,它使您选择向客户显示的任何内容都隐藏在数据存储方式之外(这正是您想要的...)。

关于ios - ios 和 mongodb 的时间戳选择,moment.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343983/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com