Tag: uuid

MongoDB + NodeJS提供16个字符的唯一ID

我正在寻找一种有效的方式来创build长度为16个字符的64位UUID。 每个ID都必须是随机的,所以你不能预测其他的ID。 另外我不确定如何检查碰撞是否发生,我怎样才能以有效的方式寻找它们。 我正在使用一个mongoDB和一个服务器节点JS。 一个例子:我调用函数来创build1.000.000个密钥,并且在数据库中已经保存了数百万个密钥。 我怎样才能保证每个密钥都存在只有那些没有比较每个密钥到数据库中现有的密钥? 我希望有人能帮助我。 谢谢 :)

使用UUID错误为NodeJS重新加载并hasMany

我有一个模型'匹配'有很多'MatchRoundTypes' 匹配具有uuid的主键matchRoundTypes引用matchUUID作为其列名匹配。 当我尝试在包含MatchRoundTypes的匹配上进行查找时,我得到: debugging:错误:MatchRoundTypes不匹配匹配! 我的查询如下所示: Matches.findAll({where: ["isPublished = ?", true], include: [MatchRoundTypes]}) 在这之前我已经发布了以下命令: Matches.hasMany(MatchRoundTypes, { as: 'roundMaps', foreignKey: 'matchUUID', useJunctionTable: false}) 我已经尝试了hasMany声明中的许多变体…包括foreignKey而不是等等。 这是我的匹配模型: sequelize.define('Matches', { uuid: {type: Seq.STRING(36), allowNull: false, primaryKey: true}, name: {type: Seq.STRING(64), allowNull: false}, }, {tableName: 'match', freezeTableName: true}) 这是我的MatchRoundTypes模型: sequelize.define('MatchRoundTypes', { { uuid: {type: Seq.STRING(36), allowNull: false, primaryKey: true}, roundTypeUUID: {type: […]

如何制作一个独特且难以猜测和预测的标记?

一旦我的用户通过第三方(Facebook或Twitter)进行身份validation,我需要生成一个令牌。 我将这个令牌返回给客户端,他们将能够使用它访问所有的用户信息。 我需要令牌难以猜测,难以预测。 (硬意味着用现代桌面猜测需要一两天的时间) MySQL具有UUID()函数,该函数生成一个唯一的值,但是文档也说明了它不可猜测或不可预测。 我不确定这是否意味着不难猜测或预测。

在cassandra中使用node.js将UUID写为文本

我有一个cassandra表user_id这是types文本的列。 我试图传递生成的uuid作为string打包写入表中。 当我这样做时,我得到一个错误: Not a valid text value, expected String obtained uuid 当我传递参数时,我尝试使用提示: {hint: 'String', value: data['userId']} 但是我仍然得到一个错误: [TypeError: Not a valid text value, expected String obtained { hint: 'String', value: 'e738922c-2277-45fd-aa94-7f5e7a189084' }] 我正在使用cassandra版本:2.2.4 任何想法如何解决这个问题?

为什么我不能在我的NodeJS应用程序中使用stringuuid作为自定义的MongoDB _id?

我正在开发一个NodeJS应用程序与MongoDB数据库(使用本地MongoDB的NodeJS驱动程序),并希望使用一个string作为我的主键。 当_id是一个string时,这个插入失败了: collection.insert({_id : "customId", name : "sampleName", email : "sampleEmail"}, {}, function(err, result) { if (err) { res.send({msg : err}); } else { res.send({msg : 'SUCCESS'}); } }); 这段代码在我的NodeJS应用程序中。 当我通过我的数据库上的mongo shell命令尝试相同的插入时,它工作正常。 我知道MongoDB主键的自定义_id字段必须保证是唯一的。 我打算在我的代码中使用uuidstring,但没有string_id似乎工作。 我在这里阅读https://docs.mongodb.org/manual/core/document/#field-names _id必须是唯一的,可以是除数组以外的任何types。 我也回顾了这个问题在MongoDB中创build自定义对象ID是相似的,但它还没有解决我的问题。 为什么我不能使用string作为自定义_id字段? 编辑:错误消息说:“[错误:parameter passing必须是一个12字节的string或24个hex字符的string]” 编辑2: 这是我的完整代码: router.post('/addcontact', function(req, res) { var db = req.db; var newContact = req.body; var […]

我应该使用node-uuid还是uuid?

在npmjs.com上有用于node-uuid和uuid软件包。 我应该用哪个? 它们是相同的API,一个是从另一个分支出来的,并且在提交时是不相同的。

JavaScript的GUID base64转换似乎并没有工作

我尝试在Node.js中由于某些原因在base64string中转换GUID 我的function是 function encode(guid) { let buffer = new Buffer(guid.replace(/-/g, ""), 'hex'); let ret = buffer.toString('base64'); ret = ret.replace(/\//g, "_").replace(/\+/g, "-"); return ret.substring(0,22); //FIXME } function decode(encoded_string) { let buffer = new Buffer(encoded_string + '==', 'base64'); let ret = buffer.toString('hex'); ret = ret.replace(/_/g, "/").replace(/-/g, "+"); return ret; } 我用guid ='c9a646d3-9c61-4cb7-bfcd-ee2522c8f633' 结果是'yaZG05xhTLe_ze4lIsj2Mw' 也很好解码(没有短划线)。 但是,根据http://guid-convert.appspot.com/ 转换后的结果是'00 amyWGct0y/ze4lIsj2Mw=='。 […]

Neo4J和其他数据库中唯一ID的最佳实践?

目前在我的Node.Js应用程序上运行Neo4J我使用node-uuid模块为我的数据库对象提供唯一的ID。 使用该模块的uuid.v1()函数,我得到了类似的东西 81a0b3d0-e4d0-11e3-ac56-73f5c88681be 现在,我的请求很长,有时在一个查询中有数百个节点和边。 所以你可以想象它们变得巨大,因为每个节点和边缘都必须有唯一的ID。 你知道如果我可以使用更短的ID系统,以便在我的项目数量增长后不会遇到任何问题吗? 我的意思是我知道我可以逃脱只有前8个符号(因为有36^8 > 2 Trl组合,但是它们随机生成时performance如何?随着节点数量的增加,机会是多less随机生成的ID不会落入已经存在的ID中? 另一个问题 – 如何交换当前的身份证系统到新的? 再生新的更短的ID最好的方法是什么? 谢谢!

MongoDB只使用中间件插入UUID?

我不知道如何正确地插入到MongoDB的UUID。 例如: db.users.insert({ uuid: UUID(buffer) }) 缓冲区必须是32hexstring和MongoDB本地不创buildUUID,只存储这个? 我是对的? 但是,我创build随机的UUID,例如通过Node.js中间件,我有一个随机的UUID 11986aba-7c5a-4626-b354-80be23c25516 ,所以它是一个36长度的string,现在我不能把它放入UUID(buffer) 。 我应该怎么做这个从node.js uuid模块生成的UUID? 以后如何从MongoDB中读取这个插入的值作为正常的uuidstring?

生成词汇提升的唯一ID

我想生成用于CouchDB的ID。 我希望这些ID可以按时间上升,这样我就可以在没有保留单独的时间戳字段的情况下对id进行sorting。 我知道CouchDB会用这个属性来生成id,但是我不希望查询数据库的性能受到影响,我宁愿在我的服务器上运行一个algorithm。 除了结果不是按照词汇升序外,我会去执行rfc 4112。 有没有什么好的理由我不应该这样做: (Date.now()) + 'x' + Math.round(Math.random() *1E18) (我正在使用nodejs)。 使用非标准的uuid,还是依靠随机函数构build的javascript,是否有任何费用?