如何使用 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/