Mongoose populate使用包含ref的对象数组

9 浏览
0 Comments

Mongoose populate使用包含ref的对象数组

我有一个Mongoose模式,其中包含一个由对象组成的数组lists,每个对象包含对另一个集合的引用和一个嵌套的数字数组:

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);

然而,我无法正常使用populate,总是会出现TypeError: Cannot read property 'ref' of undefined。我尝试过populate('list')populate('lists list'),但要么我调用的方式不正确,要么我的模式形成不正确。如果我只是简单地引用列表本身,我就没有这个问题:

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

但是我希望每个列表旁边都有一个分配数组。我需要做什么才能获得我想要的行为?

0