在MongoDB中存储表单数据(设计问题)

时间:2018-11-09 10:21:52

标签: node.js mongodb mongoose-schema

试图设计一个Form Entry Web应用程序,而我之前很少使用MongoDB。

想知道这是否是在表单内部存储表单(文档)数据的最佳实践。

const mongoose = require('mongoose');


// Create Schema and Model
const documentSchema = mongoose.Schema({
    nps: [{ // New Promotion Submission
        documentId: Number,
        orgid: Number,
        documentFields: [{ // Form Fields
            id: Number,
            dateTimeSubmitted: Date,
            title: String,
            productDescription: String,
            productUnitSize: Number,
            productCartonQty: Number 
        }]
    }]
})
const documents = mongoose.model('documents', documentSchema);

module.exports = documents;

1 个答案:

答案 0 :(得分:1)

这是绝对不错的设计,有几件事情要看:

  1. 确保在架构字段上引入validation,并在前端表单字段上镜像相同的验证模式。
  2. 与您的命名保持一致:如果您在documentId中使用camelCase,请确保也同时指定origId
  3. 公约说您以单数形式命名模型,即“文档”而不是“文档”。
  4. 如果要在其他模型的其他任何地方重用 documentFields 模式,请确保将其存储为单独的模式并根据需要导入。