如何在mongoDB中创建自定义objectid



据我所知,您可以调用objectId(" something");要生成一个新的ID。

是否可以生成一个随机ID,该ID在数据库/集合中尚不存在并且具有特定格式?

在我的情况下,我希望对象ID生成一个唯一的随机10数字。

,结果应该是:

var ObjectId = require('mongodb').ObjectID
var id = new ObjectId("something");
console.log(id) ==> 0123456789   

与评论中一样,最好的选择是在插入文档时进入当年的秒数。但是真正的问题是,新文档的插入将多密集。您需要考虑多种因素,首先是您插入的文档越多,ID在某一时刻发生冲突的机会就越高。

我建议仅离开标准的Guid Mongo为您生成,但是我可以从头到头想到的解决方案将是将几秒钟的时间纳入本年度,以获得最后5位数字,然后生成5个随机数字并将它们合并在一起。

new Date().getTime().toString().substring(8) + Math.floor(Math.random() * (99999 - 10000)) + 100000;

使用上述(80位),您将在1000000文档上获得4.135898×10-13碰撞概率。

相关内容

  • 没有找到相关文章

最新更新