gpt4 book ai didi

node.js - 当在Mongoose中使用时,Node.js UUIDv4产生恒定的id值

转载 作者:行者123 更新时间:2023-12-03 12:14:02 27 4
gpt4 key购买 nike

最近,我注意到UUIDv4生成器发生冲突的可能性很高。我用它为我的mongodb对象生成UUID,如下所示:

const mongoose = require('mongoose');
const uuid = require('uuid/v4');

const { Schema } = mongoose;

const ObjectSchema = new Schema({
UUID: { type: String, required: true, default: uuid() },
...})

预期产量
[
{
UUID: '079f67e1-4532-49fc-b7e6-2e6970c8702f',
_id: 5e0aa675f900cb561bf51fac,

},
{
UUID: 'afbc0fd4-99aa-4d73-88d7-a4724fb3df30',
_id: 5e0aa675f900cb561bf51fad,

},
{
UUID: '39b099b5-9eaf-4ac3-8d4b-1380369090b5',
_id: 5e0aa675f900cb561bf51fae,

}
]

实际结果
 [
{
UUID: '39b099b5-9eaf-4ac3-8d4b-1380369090b5',
_id: 5e0aa675f900cb561bf51fac,

},
{
UUID: '39b099b5-9eaf-4ac3-8d4b-1380369090b5',
_id: 5e0aa675f900cb561bf51fad,

},
{
UUID: '39b099b5-9eaf-4ac3-8d4b-1380369090b5',
_id: 5e0aa675f900cb561bf51fae,

}
]

我最近注意到的是,它经常给定恒定值。通常,重新启动服务器时会分配一个新值。还有谁有相同的问题吗?

最佳答案

您的代码的问题是将一次生成UUID,并且它将使用相同的默认值。

您需要使用默认的函数形式,例如每次每次生成不同的uuid:

UUID: { type: String, required: true, default: () => uuid() }

关于node.js - 当在Mongoose中使用时,Node.js UUIDv4产生恒定的id值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com