javascript - 在 mongoose 中使用 uuid 作为 objectID

标签 javascript mongoose uuid

如何使用 UUID 生成的字符串,而不是原始的 mongoose ObjectID 字符串,同时保留 objectID 方法(ValueOf()、To String(), ....)?

当我生成 UUID 并尝试在我的 Mongoose 模式中使用

在我的模型中:

var uniqueUUID = uuid.v4();
createUser = user({
            'myid': uniqueUUID,
});

在我的模型/架构中:

var userSchema = new mongoose.Schema({

_id: Schema.Types.ObjectId

});

出现验证错误。

ValidationError: user validation failed

最佳答案

您正在尝试添加架构中不存在的键。您的架构中没有定义 myid 键。默认情况下, Mongoose 不允许使用未预定义的键。

您可以将其更改为如下所示:

var userSchema = new mongoose.Schema({

_id: {type: String, default: uuid.v4}

});

自动使用生成的 uuid.v4 值分配对象 ID。

创建用户时使用:

var newUser = new user();

它已自动为文档分配 ID。请记住保存它。 :)

如果您想要另一个名为 myid 的 id 字段,您可以按照添加 _id 的方式将其添加到架构中。

关于javascript - 在 mongoose 中使用 uuid 作为 objectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36605987/

相关文章:

mongodb - 每个文档级别的聚合 mongodb

macos - 如何在 Mac 上获取 USB 设备的 UUID?

javascript - JQuery - 也可以在点击时触发更改

javascript - 如何在 javascript 中打开模式而不是手动单击?

javascript - 根据 dragend 鼠标坐标追加 div

mongodb - 为什么 MongoDB 在使用自定义 id 值插入时将 _id 增加一个

mongodb - Mongoose 分页和过滤器

mysql - MySQL bigint转UUID的存储过程

ios - 如何唯一标识 iOS 设备而不是使用 UUID 和 UDID

使用 SVG 中的外部对象创建文本区域的 Javascript 不起作用