我有2个这样的模型
const testRunSchema = new mongoose.Schema({
testTimeSlot: {
type: String,
required: true
},
testDate: {
type: String,
required: true
},
diagnosticData: [Object],
notes: String,
active: {
type: Boolean,
default: true
}
}, {
timestamps: true,
strict: false
})
const testingSchema = new mongoose.Schema({
testId: {
type: mongoose.Schema.ObjectId,
required: true
},
testDetails: {
//dummy data
},
contactDetails: {
//dummy data
},
testRunDetails: [testRunSchema], //is this a best way?
runByAssistant: Boolean
}, {
timestamps: true
});
module.exports = mongoose.model('Testing', testingSchema)
现在,我想使用第二个模型的testTimeSlot
访问testId
(这是第一个模型)。
我的解决方案:
我可以使用testimeSlot
访问第一个模型的testId
,因为在seconf模型的testRunDetails
中可以使用第一个模型的数据。
解决此问题的方法:
由于testRunSchema
在第二个模型中被定义为数组,因此访问每个数组元素的testTimeSlot
并不容易且有效。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
您认为正确的是,除了填充数组越多,查询就越慢,访问它们并不容易。因此,最好将testRunSchema分开并将其数据引用保存到testingSchema
var doc = new jsPDF();
doc.text(20, 20, 'Hello world!');
doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
doc.addPage();
doc.text(20, 20, 'Do you like that?');
doc.save('Test.pdf');
当您要查询时,只需要在猫鼬中使用polulate() 您可以在here
中阅读