猫鼬填充没有模型的嵌套模式
Posted
技术标签:
【中文标题】猫鼬填充没有模型的嵌套模式【英文标题】:mongoose populate nested schema without model 【发布时间】:2019-12-27 21:43:01 【问题描述】:我正在尝试填充嵌套模式而不为子模式创建模型,但没有任何成功。
我有一个由 2 个模式(问题、选项)创建的“问题”模型
const Option = new mongoose.Schema(
value: type: String, required: true
)
const Question = new mongoose.Schema(
content: type: String, required: true ,
options: [Option]
)
module.exports = mongoose.model('Question', Question)
我有一个“审查”模型
const Review = new mongoose.Schema(
results: [
question: type: mongoose.Schema.Types.ObjectId, ref: 'Question' ,
option: type: mongoose.Schema.Types.ObjectId, ref: 'Question.options'
],
critical: type: Boolean, default: false
)
module.exports = mongoose.model('Review', Review)
好吧,我想创建 API /reviews 来响应评论文档的数组,但填充问题和选项。
我尝试了这个命令,但它不起作用。
Model.find().populate('results.option')
有什么想法吗?
【问题讨论】:
【参考方案1】:由于填充无法引用子文档数组,因为您有单独的选项架构,为什么不使用它。
const Review = new mongoose.Schema(
results: [
question: type: mongoose.Schema.Types.ObjectId, ref: 'Question' ,
option: type: mongoose.Schema.Types.ObjectId, ref: 'Option'
],
critical: type: Boolean, default: false
)
module.exports = mongoose.model('Review', Review)
【讨论】:
以上是关于猫鼬填充没有模型的嵌套模式的主要内容,如果未能解决你的问题,请参考以下文章