Mongoose populate使用包含ref的对象数组
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" }]
但是我希望每个列表旁边都有一个分配数组。我需要做什么才能获得我想要的行为?