我有两个模式 - User
和 Site
。 User
具有对 Site
的引用数组。我试图返回 Site
的数组,但由于某种原因,它返回仅包含 ObjectIds 的数组。
用户架构
const UserSchema = new mongoose.Schema({
sites: [{ site: { type: mongoose.Schema.Types.ObjectId, ref: 'Site' },
siteRole: { type: Number } }
]})
module.exports = mongoose.model('User', UserSchema)
站点架构
const SiteSchema = new mongoose.Schema({
name: { type: String },
url: { type: String }
})
module.exports = mongoose.model('Site', SiteSchema)
我尝试了两种方法,但都返回相同的输出,即返回站点 ObjectIds 数组而不是填充版本
// 1st try
const user = await User.findById(id)
.populate({
path: 'sites',
model: 'Site',
populate: { path: 'site', model: 'Site' }
}).exec()
// 2nd try
const user = await User.findById(id)
.populate('sites.site')
.exec(function (err, site) {
if (err) return next(err)
if (!site) return res.json(401)
return res.json(site)
})
两种方式都返回(站点 ID 数组而不是站点):
[
{
"_id": "60476bf103016cef60b63319",
"siteRole": 11
}
]