1

次のスキーマを見てください。

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がすでに組み込まれているため優先されます)を生成したいので、次のコードがある場合:

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
4

1 に答える 1

3

これを行うには、コンストラクター関数であるフィールドのdefaultプロパティを定義します。activationIdObjectId

var userSchema = new mongoose.Schema({
  fullName: {
    type: String,
    required: true,
    index: true
  },
  activationId: {
    type: mongoose.Schema.ObjectId
    default: mongoose.Types.ObjectId
  }
});
于 2012-11-29T22:21:06.240 に答える