it-swarm.com.de

Mungo bevölkern mit Array von Objekten, die ref enthalten

Ich habe ein Mongoose-Schema mit einem Array lists von Objekten, die aus einem Verweis auf eine andere Sammlung und einem verschachtelten Array von Zahlen bestehen:

var Schema, exports, mongoose, schema;

mongoose = require("mongoose");

Schema = mongoose.Schema;

schema = new Schema({
  name: {
    type: String,
    required: true,
    unique: true,
    trim: true
  },
  lists: [
    {
      list: {
        type: Schema.ObjectId,
        require: true,
        ref: "List"
      },
      allocations: [
        {
          type: Number,
          required: true
        }
      ]
    }
  ],
  createdAt: {
    type: Date,
    "default": Date.now
  },
  updatedAt: {
    type: Date
  }
});

exports = module.exports = mongoose.model("Portfolio", schema);

Allerdings kann ich populate nicht zum erwarteten Funktionieren bringen, ohne einen TypeError: Cannot read property 'ref' of undefined Zu erhalten. Ich habe populate('list') und populate('lists list') ausprobiert, aber ich rufe die Dinge entweder nicht richtig auf oder mein Schema ist nicht richtig aufgebaut. Ich habe dieses Problem nicht, wenn ich einfach die Listen selbst referenziere:

lists: [
    {
        type: Schema.ObjectId,
        require: true,
        ref: "List"
    }
  ]

aber ich möchte das Zuweisungsarray neben jeder Liste haben. Was muss ich tun, um das gewünschte Verhalten zu erreichen?

48
neverfox

Ich habe die Antwort gefunden: populate('lists.list') works. Dank dieser Frage: Mungo innerhalb eines Objekts bevölkern?

88
neverfox