Vous pouvez utiliser ce code
/**
* https://docs.mongodb.com/manual/reference/method/ObjectId/
* @param seed - string allowing to create predictable mongo id value ( the same for any execution )
* @param date - date of creation - first 4 bytes of id
* @returns {ObjectId}
*/
function mongoIdFromSeed(seed, date = "2022-01-01") {
return new ObjectID(dayjs(date).unix().toString(16) + crypto.createHash("md5").update(seed).digest("hex").substr(0, 16));
}
pour un seed
y date
vous obtiendrez les mêmes résultats à tout moment.
Ce code dépend de la bibliothèque dayjs
vous pouvez supprimer cette dépendance en utilisant
new Date(date).getTime() / 1000 | 0
au lieu de unix
méthode. Je veux dire
function mongoIdFromSeed(seed, date = "2022-01-01") {
return new ObjectID((new Date(date).getTime() / 1000 | 0).toString(16) + crypto.createHash("md5").update(seed).digest("hex").substr(0, 16));
}