Mongoose JSpath默认生成ID

看看下面的模式:

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),一旦用户被创build,所以如果我有以下代码:

 var newUser = new User({ fullName: 'Rick Richards' }); newUser.save(function(error, data){ console.log(data.activationId); // Should give the activationId }); 

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

 TypeError: undefined is not a function 

您可以通过为作为ObjectId构造函数的activationId字段定义一个default属性来完成此操作:

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