Javascript 在mongoose中使用uuid作为objectID

Javascript 在mongoose中使用uuid作为objectID,javascript,mongoose,uuid,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({

如何使用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的方式将其添加到架构中

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

您可以将其更改为以下内容:

var userSchema = new mongoose.Schema({

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

});
自动用生成的
uuid.v4
值分配对象id

创建用户使用时:

var newUser = new user();
已自动为文档分配id的。记住保存它。:)


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

好吧,我的密码搞错了_id类型应为字符串。现在编辑。好的,我的代码出错了_id类型应为字符串。现在编辑它。