使用自定义时间生成Mongo ObjectId(_id)?

时间:2013-03-18 08:22:08

标签: mongodb objectid

我正在移植从MySQL到Mongo DB的文章表。据我所知,Mongo生成的_id字段在某处具有创建时间,可以提取或者可以查询它。因此,我想用它来创建MySQL的created_time INT时间戳。有没有办法在移动我的数据时为Mongo生成一个_id,它会在单独的字段中为我的记录设置时间戳?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。例如,在C#驱动程序中,有ObjectId的构造函数,您可以在其中传入时间戳,请参阅this source file。最简单的方法是使用辅助方法GenerateNewId

var id = ObjectId.GenerateNewId(new DateTime(2012, 01, 01));

我不知道您使用的是哪种编程语言,以及该语言的驱动程序是否支持此功能,但我想这是广泛可用的。

编辑:This question包含Java,mongoose和python的代码,答案包含PHP的代码。 “广泛可用”似乎是一个错误的假设,例如,它尚未在PHP驱动程序中实现。