我正在使用 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/