在子模式文档中填充字段

时间:2019-06-10 12:32:26

标签: mongodb mongoose mongoose-schema mongoose-populate

我有一个数组形式的嵌套子模式,在此子模式数组中,我引用了Image类型的对象ID(请参见图像模式)。 我想要的是用图像本身的数据填充此对象ID。 恢复要填充子模式文档中的字段的需求。 我尝试了许多解决方案,但没有成功,不知道该如何实现? 谢谢

我有以下3种模式:

const deviceSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    name: {
        type: String,
        required: true,
    },
    os: {
        type: String,
        required: true,
    },
   },
    images:[assignedImagesSchema]
});

const  assignedImagesSchema = new mongoose.Schema({ 
    id: {type: mongoose.Schema.Types.ObjectId, ref:"Image"},
    isVisible: {
        type: Boolean,
        default: true
    },
    visibleFor: {
        type: Number,
        default: 0
    },
    orderIndex: {
        type: Number,
    }
  });
const imageSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    url:{
        type: String,
        required: true,

    },
    orientation: {
        type: String,
        required: true,
    },
    devices: [{type: mongoose.Schema.Types.ObjectId, ref:'Device' }]

1 个答案:

答案 0 :(得分:0)

您只需在 assignedImageSchema 中添加一个将imageSchema作为对象的新字段。例如:

const assignedImagesSchema = 
new mongoose.Schema({ 
image: { type: imageSchema } , 
isVisible: { type: Boolean, default: true },
visibleFor: { type: Number, default: 0 },
orderIndex: { type: Number, } });