#node.js #mongodb #mongoose #nodes
#node.js #mongodb #мангуст #узлы
Вопрос:
Мой желаемый результат — извлечь этот данный результат из коллекции с именем dashboard, у меня нет идентификатора объекта коллекции dashboard, единственное, что у меня есть, это идентификатор объекта электронной почты внутри него:
Я предоставляю вам желаемый результат и все необходимые детали:
Желаемый результат и данные, хранящиеся в коллекции Dashboard
{
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
});
Ответ №1:
Просто измените эту строку и попробуйте.
Dashboard.find({email:req.param.id}).populate("email").exec( (err, foundDashboard)=>{
Для
Dashboard.find({"email.id":req.param.id}).exec( (err, foundDashboard)=>{