NodeJS mongoose根据请求类型需要条件

mkh04yzy  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(86)

我可以在模式中有一个字段,比如“_id”,只有当请求类型是“PUT”时才需要它吗?

const sampleSchema = mongoose.Schema({
  _id: {
    type: Number,
    required: [true, "Sample _id is required"]
  }
})

字符串

fjaof16o

fjaof16o1#

如果内置的验证器不够,你可以定义自定义验证器来满足你的需求。自定义验证通过传递一个验证函数来声明- Custom Validators:

const mongoose = require('mongoose');

const sampleSchema = mongoose.Schema({
  _id: {
    type: Number,
    required: function () {
      return !!this._id;
    },
    message: "Sample _id is required"
  }
});

const SampleModel = mongoose.model('Sample', sampleSchema);

字符串
在Mongoose中,如果您没有显式设置,则默认情况下会将自动生成的_id分配给每个文档。因此,在创建新文档时,您不需要显式设置_id字段,除非您希望使用自定义_id。但请注意,如果没有id,mongoose不允许保存或创建新文档- Ids。

相关问题