shell - 如何从 Mongo ObjectID 中提取创建日期

标签 shell mongodb timestamp unix-timestamp

我正在使用 Mongo shell 来查询我的 Mongo 数据库。我想将 ObjectID 中包含的时间戳用作我的查询的一部分,也用作提取到输出中的列。我已经设置 Mongo 自己创建 ObjectID。

我的问题是我不知道如何使用 ObjectID 来提取其时间戳。

以下是我正在尝试解决的问题。 “createdDate”字段是占位符;不确定正确的字段是什么:

//Find everything created since 1/1/2011
db.myCollection.find({date: {$gt: new Date(2011,1,1)}});

//Find everything and return their createdDates
db.myCollection.find({},{createdDate:1});

最佳答案

getTimestamp()

你需要的功能就是这个,它已经包含在你的shell中了:

ObjectId.prototype.getTimestamp = function() {
    return new Date(parseInt(this.toString().slice(0,8), 16)*1000);
}

引用文献

从文档中查看此部分:

此单元测试也演示了相同的内容:

使用 Mongo shell 的示例:

> db.col.insert( { name: "Foo" } );
> var doc = db.col.findOne( { name: "Foo" } );
> var timestamp = doc._id.getTimestamp();

> print(timestamp);
Wed Sep 07 2011 18:37:37 GMT+1000 (AUS Eastern Standard Time)

> printjson(timestamp);
ISODate("2011-09-07T08:37:37Z")

关于shell - 如何从 Mongo ObjectID 中提取创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327296/

相关文章:

linux - 我只想从控制文件中获取计数

java - 找不到能够从类型 org.bson.BsonUndefined 转换的转换器

Java时间戳转php时间戳

bash - unix 中的自定义脚本输出

linux - 在 RedHat Linux 中使用 mailx 在主题中使用日文字符并附加文件

linux - 将 Bash 脚本转换为 Shell

node.js - 在 Node + Mongo 中强制执行单个 DB Writer

mongodb - 将 MongoDB 数据库复制到本地计算机

oracle - 如何在oracle中将日期转换为时间戳(DD-MON-YYYY HH24 :MI:SS. FF格式)?

postgresql - 通过在 postgresql 上索引时间戳列来加快搜索速度?