【问题标题】:Mongodb operate on timestamp in longMongodb对时间戳进行长时间操作
【发布时间】:2012-06-11 05:31:09
【问题描述】:

在我们的数据库中,它使用 NumberLong 来存储时间戳。问题是我可以使用哪个 javascript 函数来操作 mongodb shell 中的时间戳?

例如,找出时间 NumberLong(1330828762699) 和当天开始的第二天的毫秒时间。

【问题讨论】:

  • 你可以使用Date对象吗?
  • 你的意思是var date = new Date(timestamp)并对日期对象进行操作吗?我在想,就是想看看有没有其他捷径可以走
  • 没错。自从我使用 MongoDB 已经有一段时间了,但如果你可以使用 Date 对象,我会使用它。
  • 我不认为你可以将它们保存在 shell 中,但你可以在启动时使用 mongo --shell yourfile.js 加载它们。有关此类助手的示例,请参阅github.com/mongodb/mongo-csharp-driver/blob/master/…
  • 您可以使用 system.js 集合在服务器端保存脚本:mongodb.org/display/DOCS/Server-side+Code+Execution 但是,如果您打算经常使用这些脚本,最好将它们保存在您自己的版本控制系统中。

标签: javascript mongodb date timestamp


【解决方案1】:

1) mongo shell 中的“new Date()”被提升为 ISODate(),所以你可以使用上面的方法;

> new Date(1330828762699)
ISODate("2012-03-04T02:39:22.699Z")
> new Date(1330828762699).getMilliseconds()
699

2) 关于文档上的时间戳,您知道可以使用内置的创建日期吗?

> ObjectId("5020317b92c3d21cb851fa1a").getTimestamp()
ISODate("2012-08-06T21:04:59Z")

3) 我会看一下用于操作数据的 2.2 聚合框架。它有一些有用的日期函数,您可以使用这些函数对您的数据进行有用的基于时间的查询;

http://docs.mongodb.org/manual/reference/aggregation/#date-operators

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2015-03-07
    • 2012-10-01
    • 1970-01-01
    • 2017-09-21
    相关资源
    最近更新 更多