如何在mongoDB中使用对象ID获取时间戳

时间:2018-09-23 15:41:46

标签: node.js mongodb

我如何在mongoDB中使用对象ID获取时间戳。我正在使用NodeJS和mongoDB作为后端服务,因此我希望在将文档插入集合中时获取文档的日期和时间。 这就是我正在使用的:

 db.Users.find()._id.getTimestamp()

输出

 ISODate("2018-09-11T11:00:38Z")

现在我想知道的是:

1)将日期和时间与上述字符串分开,并将其转换为可读格式。

2):MongoDB对象ID返回的时间戳基于服务器时间或用户计算机。

谢谢

2 个答案:

答案 0 :(得分:1)

1)getTimestamp()ObjectID对象上可用,例如默认为_id字段。因此,无论您如何获取文档,都可以使用它。这将返回一个JavaScript Date对象,因此可以轻松提取和操作它,如您所愿。

2)ObjectID中的嵌入式时间戳取决于创建时间戳。如果是在客户端创建的,它将来自客户端系统。如果它是在服务器端创建的,它将来自服务器系统。

答案 1 :(得分:0)

1-

.getTimestamp().toLocaleDateString() //get the date
  .getTimestamp().toLocaleTimeString() // get the time

2-内部,Date对象存储为带符号的64位整数,表示自Unix时代(1970年1月1日)以来的毫秒数。   许多数据库存储日期的一种标准方式是自大纪元以来的毫秒数,0代表1970年1月1日格林尼治标准时间00:00:00。这就是内部使用大多数编程语言存储日期的方式。