Nodejs生成 Mongodb的ID问题
 发布于 13 年前  作者 iln168  13651 次预览  最后一次回复是 10 年前  来自  

请问谁知道,Nodejs如何为Mongodb或数据生成一个ID 有点像C#的GUID那个方法。

8 回复
iln168

GUID生成一个36位的 不重复ID

iln168

Nodejs估计是没有提供,我自己用写了一个方法,

function GUID(){
    var S4 = function ()
    {
        return Math.floor(
            Math.random() * 0x10000 /* 65536 */
        ).toString(16);
    };

    return (
        S4() + S4() + "-" +
            S4() + "-" +
            S4() + "-" +
            S4() + "-" +
            S4() + S4() + S4()
        );
}

如果有更好的方法,多多指教

cony138

我是直接用mongo的objectId,不知道可不可以啊,坐等专家回复

a272121742

去查看mongodb的api去,mongo允许你使用除了_id之外的作为主键,如果你不指定主键类型,他依然默认按照ObjectId的生成方式,除非你指定其他类型。甚至还可以做自增长的id类型,但这完全取决于你的代码。

iln168

@a272121742 兄弟你就直接放代码吧,如何有api发个连接,我们很初学一般来说id用Nodejs来生成好一点啊

a272121742

@iln168 新手需要代码就会被依赖倒,自己看api能学到更多。而且这种自增长/自定义的id网上很多,我不喜欢做搬运,谢谢!

henryleu

本人创业公司CTO/技术总监,刚刚开源一个Javasript/nodejs 版本的高性能序列生成器,已使用多年,可以最快速度在生产集群环境下生成唯一数字主键,稳定,高速,简短。

请参考 mysequence home

npm install mysequence

microlv

npm install node-uuid