Хранение данных формы в MongoDB (вопрос проектирования) - PullRequest
0 голосов
/ 09 ноября 2018

Попытка создать веб-приложение Form Entry, и я раньше редко использовал 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 голосов
/ 16 ноября 2018

Это абсолютно прекрасный дизайн, на что стоит обратить внимание:

  1. Убедитесь, что вы вводите валидацию в свои поля схемы, отразите ту же схему валидации и в полях формы внешнего интерфейса.
  2. Будьте последовательны с вашими именами: если вы используете camelCase в documentId, обязательно также укажите origId
  3. Конвенция гласит, что вы называете модель в единственном числе, то есть "документ", а не "документы".
  4. Если вы собираетесь повторно использовать схему documentFields где-либо еще в других моделях, обязательно сохраните ее как отдельную схему и импортируйте при необходимости.
...