Node.js 如何从mongoose中的子对象获取集合详细信息

Node.js 如何从mongoose中的子对象获取集合详细信息,node.js,mongodb,mongoose,nodes,Node.js,Mongodb,Mongoose,Nodes,我想要的结果是从名为dashboard的集合中提取此给定输出,我没有dashboard集合对象的id,我唯一拥有的是其中的电子邮件对象的id: 我将向您提供所需的输出和所有必要的详细信息: 仪表板集合中存储的所需输出和数据 { email: { id: 5f8b4cfc0064d241048d8d2e, username: 'd@d.com' }, _id: 5f8b4d670064d241048d8d2f, name: 'doud', age: 22, gender: 'male',

我想要的结果是从名为dashboard的集合中提取此给定输出,我没有dashboard集合对象的id,我唯一拥有的是其中的电子邮件对象的id:

我将向您提供所需的输出和所有必要的详细信息:

仪表板集合中存储的所需输出和数据

{
 email: { id: 5f8b4cfc0064d241048d8d2e, username: 'd@d.com' },
 _id: 5f8b4d670064d241048d8d2f,
 name: 'doud',
 age: 22,
 gender: 'male',
 height: 65,
 weight: 65,
 __v: 0
}
错误的书面代码:

router.get("/dashboard/:id", (req, res)=>{
    Dashboard.find({email:req.param.id}).populate("email").exec( (err, foundDashboard)=>{
        if(err){
            console.log(err);
        }
        else{
            console.log(foundDashboard);
            res.render("show", {dashboard: foundDashboard});
        }
    });
用户模式

var UserSchema = new mongoose.Schema({
    email: String,
    password: String
});
仪表板模式

var DashboardSchema = new mongoose.Schema({
    // image: String,
    name: String,
    age:Number,
    gender: String,
    email: {
        id: {
            type: mongoose.Schema.Types.ObjectId,
            ref: "User"
        },
        username: String
    },
    height: Number,
    weight: Number   
});

只需修改这一行,然后再试一次

Dashboard.find({email:req.param.id})。填充(“email”).exec((err,foundDashboard)=>{

Dashboard.find({"email.id":req.param.id}).exec( (err, foundDashboard)=>{