我必须将大量数据从 MySQL 导入 MongoDB,并且我想使用 ObjectID 中的时间戳,而不是将其存储在单独的键/值中(因为它在现有数据中)。为此,我需要为具有过去日期的现有数据创建一个 ObjectID。我还需要使用 PHP 驱动程序来执行此操作。我读过 Python、Java 和 Node.JS 中可能有一种方法可以做到这一点,所以我认为 PHP 中可能有一种等效的方法。
如果这是可能的 - 这样做安全吗?这意味着我会遇到重复或无效的 ObjectID 的问题吗?谢谢。
在 Node.JS 中:
var timestamp = Math.floor(new Date().getTime()/1000);
var objectId = new ObjectID(timestamp);
以下来自:MongoDB使用时间戳排序
在 Python 中:
gen_time = datetime.datetime(2010, 1, 1)
dummy_id = ObjectId.from_datetime(gen_time)
在 Java 中:
Date d = new Date(some timestamp in ms);
ObjectId id = new ObjectId(d)