我有一个查询架构:
const inquirySchema = new mongoose.Schema({
client: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Client' }],
data: dynamicSchema?
}, {
timestamps: true
});
我想填充"数据"带有子文档的属性字段,但我希望它接受不同的子文档模式。我有一个"事件"和"财产"子模式,可以作为"数据"插入。如何在我的查询架构中允许这个?看来我必须实际指定它期望的WHICH子文档架构......
我的孩子模式:
const eventSchema = new mongoose.Schema({
name: { min: Number, max: Number },
date: { type: Date },
zone: { type: String }
});
const propertySchema = new mongoose.Schema({
price: { min: Number, max: Number },
status: { type: String },
zone: { type: String }
});
答案 0 :(得分:1)
您可以将User.find_by_id(session["warden.user.user.key"][0][0])
设为data
,而无需在架构中定义任何引用,如果要填充它们,请在{{type : ObjectId
和path
中使用model
1}}来自不同populate
的{{1}},但您必须有populate
来选择collection
到logic
。{/ p>
以下是如何做到这一点:
<强> inquirySchema 强>
collection
填充populate
const inquirySchema = new mongoose.Schema({
client: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Client' }],
data: { type: mongoose.Schema.Types.ObjectId }
}, {
timestamps: true
});