如何使用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
答案 0 :(得分:0)
您正在尝试添加模式中不存在的密钥。您的架构中没有定义myid
密钥。默认情况下,mongoose不允许使用尚未预先定义的密钥。
您可以将其更改为:
var userSchema = new mongoose.Schema({
_id: {type: String, default: uuid.v4}
});
使用生成的uuid.v4
值自动为对象id赋值。
创建用户使用时:
var newUser = new user();
已自动为文档分配了id。请记住保存它。 :)
如果您想要另一个名为myid
的id字段,可以按照如何添加_id将其添加到架构中。