У меня есть следующая схема, определенная в двух файлах.
faultreport.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var FaultReportSchema = new Schema(
{
reporter: {type: String, required: true, max: 128},
comment: [{type: Schema.ObjectId, ref: 'Comment'}],
status: {type: String, default: 'Reported', max: 64},
datetime: {type: Date, required: true},
}
);
module.exports = mongoose.model('FaultReport', FaultReportSchema);
comment.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var CommentSchema = new Schema(
{
commenter: {type: String, required: true, max: 128},
comment: {type: String, required: true, max: 1024},
datetime: {type: Date, required: true},
}
);
module.exports = mongoose.model('Comment', CommentSchema);
Моя идея состоит в том, что каждый FaultReportсвязан с одним комментарием при создании, но дальнейшие комментарии могут быть добавлены позже.Я хотел бы построить экспресс-маршрут, который можно использовать для вывода списка всех FaultReports, включая строку комментария в связанном комментарии.
Я пытаюсь сделать это следующим образом.
router.get('/list_all', function(req, res, next) {
FaultReport.find(function(err, reports) {
if (err) return console.error(err);
var data = [];
for (var i = 0; i < reports.length; i++) {
console.log(reports[i]);
data.push([reports[i].datetime, reports[i].reporter, reports[i].comment[0].comment]);
}
res.render('list_all', {
title: 'Fault List',
data: data
});
});
});
Я явно неправильно понимаю, как работает экспресс / мангуст, и буду очень признателен за любую помощь или совет, который вы можете дать.Что я делаю неправильно?Что мне нужно сделать?