首页 > 解决方案 > Mongoose Schema 用户提交的日期值

问题描述

嗨,我正在尝试使用 mongoose 创建一个产品模式,其中包含一个Expiry Date由用户提交的字段。

它只是一个日期字段,但需要由用户选择,而不是提前硬编码到特定日期。

我怎样才能做到这一点?

这是我的基本模型:

const productSchema = new mongoose.Schema({
      name: {
        type: String,
        trim: true,
        required: true,
        maxlength: 32
      },
      description: {
        type: String,
        trim: true,
        required: true,
        maxlength: 20000
      },
      price: {
        type: Number,
        trim: true,
        required: true,
        maxlength: 32
      },
      category: {
        type: ObjectId,
        ref: 'Category',
        required: true
      }
    }, {timestamps: true}
);

标签: node.jsreactjsmongodbmongoose

解决方案


您可以使用日期选择器并将其值作为 ISO 日期字符串保存到 mongoose。

example: const date = new Date().toISOString();

您的猫鼬模式将如下所示:

const productSchema = new mongoose.Schema({
    expirationDate: {
        type: Date,
        default: new Date(), // Set a default date
        required: true, // or you can mark it as required.
    },
    name: {
        type: String,
        trim: true,
        required: true,
        maxlength: 32
    },
    description: {
        type: String,
        trim: true,
        required: true,
        maxlength: 20000
    },
    price: {
        type: Number,
        trim: true,
        required: true,
        maxlength: 32
    },
    category: {
        type: ObjectId,
        ref: 'Category',
        required: true
    }
}, { timestamps: true }
);

推荐阅读