mongoose设置了一个默认字段,以获取2个其他字段值

wgmfuz8q  于 2022-11-13  发布在  Go
关注(0)|答案(2)|浏览(212)

是否有一种方法可以让一个字段默认合并两个其他字段的值。我有一个用户模式如下:

const UserSchema = mongoose.Schema({
  firstName: {
    type: String,
    required: true,
  },
  lastName: {
    type: String,
    required: true,
  },});

我想添加第三个名为fullName的字段,它默认为合并firstName + lastName。这在mongoose中可能吗?

jdzmm42g

jdzmm42g1#

请尝试以下操作:

fullName:{
    type:String,
    required:true,
    default: function(){
      return this.firstName + " " + this.lastName
  }}

文档更新时:

yourSchema.pre("updateOne", function (next) {

  this.set({ fullName: this.get("firstName") + " " + this.get("lastName")  });

  next();
});
9vw9lbht

9vw9lbht2#

我使用Mongoose的虚拟设置器(虚拟)documented解决了这个问题
请确保将其添加到Schema中,以便在将文档转换为JSON时包含虚拟内容

const opts = { toJSON: { virtuals: true } };

相关问题