首页 > 解决方案 > 具有不同索引大小的 JSON 对象的架构

问题描述

基本上,我有一个 MEAN 堆栈应用程序,我想在其中定义数组大小变化的模式。我被告知这是可能的。

我已经成功地在 MongoDB 上保存了一个 JSON 对象,如下所示;

{
    "Diseases":[
                {
                "DiseaseName": "Diabetes",
                "Severity": "3"
                
            },
                {
                "DiseaseName": "Psoriasis",
                "Severity": "4"
            }
        ],
    
  "Prescriptions": [
            {
                "Name" : "Insulin",
                "Unit" : "100 microgram"
            },
          {
            "Name" : "Cortisone",
            "Unit" : "150 microgram"
          }        
    ]       
}

基本上,我想定义一个模式,其中疾病和处方中的数组元素(对象)的数量可以是任意的。如果我理解正确的话,Diseases 和 Prescriptions 是包含包含在对象中的对象的数组。

标签: mongodbmongoosebackendmean-stackmongoose-schema

解决方案


这是您可以使用的示例架构:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const diseaseSchema = new Schema({
    diseaseName:{               
        type: String,
        required: true,
    },
    severity: {
        type: Number,
        min:0,
        max: 5,
        required: true
    }
},{
    timestamps: true
});

const prescriptionSchema = new Schema({
    name:{               
        type: String,
        required: true,
    },
    unit: {
        type: String,
        required: true
    }
},{
    timestamps: true
});


const patientSchema = new Schema({
    diseases: [diseaseSchema]
    prescriptions: [prescriptionSchema]
},{
    timestamps: true
});

var Patients = mongoose.model('Patient', patientSchema);

module.exports = Patients;

作为参考,请查看mongoose 文档


推荐阅读