1
我试图填充子模式字段。猫鼬 - 填充子模式子数组
A 项目包含多个ProjectFilters。 每个ProjectFilter参考一个FilterValue。 A FilterValue包含在一个(且仅有一个)筛选器中。
ProjectSchema
const ProjectSchema = new Schema({
title: String,
filters: [ProjectFilter.schema],
}, {
timestamps: true,
toJSON: {
virtuals: true,
},
});
ProjectFilterSchema
const ProjectFilterSchema = new Schema({
filterValue: {
type: mongoose.Schema.Types.ObjectId,
ref: 'FilterValue',
},
isMain: {
type: Boolean,
default: false,
},
}, {
toJSON: {
virtuals: true,
},
});
FilterSchema
const FilterSchema = new Schema({
label: String,
values: [FilterValue.schema],
}, {
timestamps: true,
toJSON: {
virtuals: true
},
});
FilterValueSchema
const FilterValueSchema = new Schema({
label: String,
color: String,
}, {
toJSON: {
virtuals: true,
},
});
该查询不起作用。 filterValue是null
:
let query = Project.findById(req.params.projectId, { _id: 0, filters: 1 });
query.populate('filters.filterValue');
我曾尝试使用虚拟填入:
ProjectFilterSchema.virtual('usedValue', {
ref: 'Filter',
localField: 'filterValue',
foreignField: 'values._id',
justOne : true,
});
但这返回整个过滤文件,不仅FilterValue需要。