猫鼬填充不填充引用对象数组

问题描述

我有两个模式 - UserSiteUser 具有对 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
    }
]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)