我正在为嵌入式产品的订单定义一个架构。 我正在使用区分符将它们全部存储在同一数组中。
const productDiscriminator = {
discriminatorKey: 'productType',
};
const ProductSchema = new Schema(
{
},
productDiscriminator,
);
const ProductModel = Mongoose.model('Product', ProductSchema);
const OrderSchema = new Schema({
products: {
type: [ProductSchema],
},
});
const Prod1Schema = new Schema(
{
boxType: {
type: Types.String,
},
vessels: {
type: [Types.String],
},
},
);
const OrderProductsDocArray = OrderSchema.path('products');
const Product1Model = OrderProductsDocArray.discriminator('Product1', VesselBoxSchema);
然后我可以使用productType键创建并订购产品1类型的数组。
但是,当我检索订单时,我无法访问子属性,只能访问鉴别键。
奇怪的是,如果我记录了整个产品对象,则可以看到这些值在数据库中。我还可以看到直接在数据库中查找就可以正确设置所有内容,但是我无法使用Mongoose正确地获取它们。有没有办法填充这些字段?