javascript - Mongoose JS路径默认生成id

标签 javascript node.js mongoose

看看下面的架构:

var userSchema = new mongoose.Schema({
  fullName: {
    type: String,
    required: true,
    index: true
  },
  activationId: {
    type: mongoose.Schema.ObjectId
  }
});

userSchema.path('activationId').default(function() {
  return new mongoose.Schema.ObjectId.fromString('actvt');
});

这是关于“activationId”的,我想在创建用户后生成一个 ID(唯一代码,首选 objectID,因为它已经内置在 Mongoose 中),所以如果我有以下代码:

var newUser = new User({
  fullName: 'Rick Richards'
});

newUser.save(function(error, data){
  console.log(data.activationId); // Should give the activationId
});

但是这个解决方案给我以下错误:

TypeError: undefined is not a function

最佳答案

您可以通过为 activationId 字段定义一个 default 属性来做到这一点,该字段是 ObjectId 构造函数:

var userSchema = new mongoose.Schema({
  fullName: {
    type: String,
    required: true,
    index: true
  },
  activationId: {
    type: mongoose.Schema.ObjectId
    default: mongoose.Types.ObjectId
  }
});

关于javascript - Mongoose JS路径默认生成id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635114/

相关文章:

javascript - 中断循环的 WebWorker

javascript - 通过按钮切换类(选择/取消选择)

mysql - 在已释放回池的连接上触发 Node mysql 错误事件

node.js - 如何针对外键 Mongoose 进行填充?

javascript - 如果存在则更新多个,否则为每个不存在的 LeadId 创建一个新文档

javascript - 可以在不使用 "for=id"的情况下将标签与复选框相关联吗?

javascript - 如何在 Chartjs 中以编程方式触发悬停

javascript - 如何将 Angular 应用程序连接到您的 html

javascript - 使用feathersjs创建后无法从对象中删除_id字段

node.js - mongoose的save()方法从何而来?