您好我正在学习MongoDB以及如何使用Mongoose,
我正在尝试构建一个简单的锻炼管理器应用程序,其中锻炼有一个名称(例如:“上半身”),一个电子邮件帐户(用于识别创建锻炼的人)和一系列由参考组成的锻炼练习。
我希望能够通过仅使用锻炼名称来查询我可以访问锻炼标题(例如:“俯卧撑”)。
我的workout.js型号:
<img class="img-fluid" src="test1/app/assets/images/portfolio/thumbnails/3.jpg" alt="">
我的exercise.js模特:
image_tag("portfolio/thumbnails/3.jpg", class: "img-fluid")
我的锻炼控制器如下所示:
var mongoose = require('mongoose');
const Schema = mongoose.Schema;
var Exercise = require('./exercise');
const workoutSchema = new Schema({
title: {type: 'String', required: true},
email: {type: 'String', required: true},
exercises: [{ type: Schema.Types.ObjectId, ref: 'Exercise' }],
});
module.exports = mongoose.model('Workout', workoutSchema);
在我的routes.js中我有这个:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var exerciseSchema = new mongoose.Schema({
title: {type: String, required: true}
}, {
timestamps: true
});
module.exports = mongoose.model('Exercise', exerciseSchema);
非常感谢任何帮助或提示!
答案 0 :(得分:0)
我不确定你在这里做了什么res.json({exercises.title});你能试试吗?希望它有效
Workout.findOne({ title: req.params.workout_name})
.populate('exercises')
.exec((err, workout) => {
if (err){
res.send(err);
} else {
res.send({ exercises: workout.exercises });
}
});
然后,在您的客户端,您可以迭代练习数组并访问练习标题