You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose关联查询中仅返回评论用户的name字段?

解决方法

修改嵌套populate的配置,添加select选项指定仅获取name字段即可,修改后的代码如下:

// const cookieParser = require("cookie-parser")
const Post = require("../models/post");
// const   User= require("../models/user")

module.exports.home= async(req, res)=>{
    try{
        console.log(req.cookies)
        const posts = await Post.find({})
        .populate("users")
        .populate({
            path:'comments',
            populate:{
                path:'user',
                select: 'name' // 新增该行,指定仅返回name字段
            }
        })
        .exec();
        // console.log(posts.content);
        // console.log(posts);

        //    res.cookie("user_id", 25);
        return res.render('home', {
        title: "Home Page ",
        posts:posts,
    }) 

    }
    catch(err){
        console.log("error in sending feed", err);
        return res.redirect("back");

    }
}

修改说明

在嵌套的populate({ path: 'user' })配置中添加select: 'name'参数后,Mongoose关联查询用户数据时,会仅提取并返回name字段,自动过滤掉email、password等不需要的字段。

内容的提问来源于stack exchange,提问作者Himanshu Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:07:15