【问题标题】:using uuid as objectID in mongoose在猫鼬中使用 uuid 作为 objectID
【发布时间】:2016-04-14 03:10:38
【问题描述】:

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

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

在我的模型中:

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

在我的模型/模式中:

var userSchema = new mongoose.Schema({

_id: Schema.Types.ObjectId

});

出现验证错误。

ValidationError: user validation failed

【问题讨论】:

标签: javascript mongoose uuid


【解决方案1】:

您正在尝试添加架构中不存在的键。您的架构中没有定义 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 类型应该是字符串。现在编辑它。
猜你喜欢
  • 2016-01-01
  • 2017-10-24
  • 1970-01-01
  • 2013-07-27
  • 2017-04-06
  • 2020-07-25
  • 2017-04-25
  • 2022-09-28
  • 2016-11-21
相关资源
最近更新 更多