Создайте ссылку на массив вложенного документа для каждого свойства вложенного документа

#mongodb #mongoose #mongodb-query #mongoose-schema #mongoose-populate

Вопрос:

Модель А выглядит так

     { a : {
     step1: [{
        type: { type: String },
        category: { type: String },
       }],
     step2: [{
        type: { type: String },
        category: { type: String },
       }]
    } }
 

Модель B , которую я хотел создать, должна содержать опору, которая будет ссылаться на модель A. шаг 1 или шаг 2, пытаясь достичь этого, следуя

     { progress : [
         {
           step: {
              type: Schema.Types.ObjectId,
              ref: "A.a.{What should be here}",
              required: true,
           },
           details: { type: Schema.Types.Mixed },
         }
      ]
    }
 

Ответ №1:

Я думаю, вам нужно создать схемы для всех из них 🙂

Я бы просто полностью разделил эти три — не уверен, что это жизнеспособно для вас, поскольку вся идея, стоящая за этим, немного загадочна, но сработает ли что-то подобное для вас?

 const stepSchema = new Schema({
    type: String,
    category: String,
});
const Step = mongoose.model("steps", stepSchema);


const aSchema = new Schema({
    step1: [stepSchema],
    step2: [stepSchema],
});
const A = mongoose.model("as", aSchema);


const progressSchema = new Schema({
    a: { type: aSchema, required: true, ref: "as"},
    progress: [{ type: stepSchema, required: true, ref: "steps" }],
    details: Schema.Types.Mixed,
});
const Progress = mongoose.model("progresses", aSchema);