如何在mongodb

时间:2017-10-01 01:42:48

标签: javascript mongodb objectid

据我所知,你可以调用ObjectId("");生成一个新的身份。

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

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

所以结果应该是:

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

1 个答案:

答案 0 :(得分:1)

在评论中,您最好的选择是在插入文档时获得当年的秒数。但真正的问题是新文件的插入是多么密集。您需要考虑多个因素,首先是您插入的文档越多,您的ID在一个点碰撞的可能性就越大。

我建议只留下标准的GUID mongo为你生成,但是我能从头脑中想到的解决方案是获取当前年份的秒数,获得最后5位的子串,然后生成5个随机数字并将它们合并在一起。

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

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