2014-07-08 37 views
0

我supprised根据mongodb.org网站ISODate("2012-10-15T21:26:17Z")对象ID .getTimestamp()的MongoDB

所以我的问题是,如果这个对象ID是它的MongoID学习今晚ObjectId("507c7f79bcf86cd7994f6c0e").getTimestamp()回来了?或者他们是两个不同的东西。

我问的原因是当用户发布状态到我们的网站时,我们使用PHP中的time()函数来存储用户发布状态的时间,如果我们是这样的话,它会为我们节省一点代码能够使用mongoID获取状态上传的时间和日期。

我对其他人的想法感兴趣,或者我正确理解这一点。

如果我正确理解这个问题,那么有人请给我一个PHP例子,说明如何让MongoID输出日期和时间?

感谢

回答

1

所以我的问题是,如果这个对象ID是它的MongoID?

Mongodb通过其_id字段标识文档。如果您在插入时未提供_id字段,则mongodb服务器将为该文档生成ObjectId(在其_id字段中)。在php中,这些值将被转换为MongoId类。

...如果我们能够使用mongoID获取状态上传的时间和日期。

也许吧。 ObjectId s是constructed,它使用一个4字节的值来表示自Unix纪元以来的秒数。如果您在插入时不提供_id字段(或者您提供的值为ObjectId,由您的客户端应用程序生成,则使用MongoDB's supplied api),那么可以使用ObjectId。但是,您并不是被迫在每个_id字段(或者全部)使用ObjectId。另外(因为它们以4字节表示),它们受year 2038 problem...