mongodb - 具有不同索引大小的 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 是包含包含在对象中的对象的数组。
解决方案
这是您可以使用的示例架构:
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 文档
推荐阅读
- typescript - 如何使 tsconfig.json 路径别名在 Razzle 项目中工作?
- amazon-web-services - EC2 实例拒绝连接
- node.js - 节点 - 无法验证第一个证书 / UNABLE_TO_VERIFY_LEAF_SIGNATURE localhost
- reactjs - 反应 - 遍历 BFS 时 useState 更新速度不够快
- docker - 使用带有 Kafka docker 容器错误的 Spark Streaming?
- terraform - 尝试使用 terraform 输出 csv 文件的内容时遇到错误
- java - 解析 Java 反射类
- javascript - 需要使用日期时间提示提供额外建议以在 bot 框架中使用
- javascript - 是否可以在填充猫鼬中将缓冲区转换为 base64string?
- apache-kafka - 如何使用 Spring Cloud Sleuth 跟踪 Kafka 流