如何获取多重连接的结果
How to get results of multiple join
我有以下设置:
...
Survey.hasMany(Question, {as: 'Questions'});
Question.hasMany(Answer, {as: 'Answers'});
如何获取单个调查的完整记录集?我知道如何获取调查的所有问题,但我希望每个问题也有与之相关的所有答案。
Question.findAll({
where: {
surveyId: req.surveyId
}
}).then(function (questions) {
// Now how do I join questions with their answers?
}, function (err) {
});
我理想的结构是:
var survey = [
{
question: 'some question',
answers: [{...},{...},...]
},
{
...
},
.
.
.
]
您应该包括关联的模型。
Question.findAll({
where: {
surveyId: req.surveyId
},
include: [{
model: Answer,
as: 'Answers'
}]
}).then(function (questions) {
console.log(questions[0].Answers);
}, function (err) {
});
或者您可以查询 Survey
模型并包括 Question
和 Answer
:
Survery.findAll({
where: {
id: req.surveyId
},
include: {
model: Question,
include: {
model: Answer
}
}
}).then(function (surveys) {
console.log(surveys[0]);
}, function (err) {
});
我有以下设置:
...
Survey.hasMany(Question, {as: 'Questions'});
Question.hasMany(Answer, {as: 'Answers'});
如何获取单个调查的完整记录集?我知道如何获取调查的所有问题,但我希望每个问题也有与之相关的所有答案。
Question.findAll({
where: {
surveyId: req.surveyId
}
}).then(function (questions) {
// Now how do I join questions with their answers?
}, function (err) {
});
我理想的结构是:
var survey = [
{
question: 'some question',
answers: [{...},{...},...]
},
{
...
},
.
.
.
]
您应该包括关联的模型。
Question.findAll({
where: {
surveyId: req.surveyId
},
include: [{
model: Answer,
as: 'Answers'
}]
}).then(function (questions) {
console.log(questions[0].Answers);
}, function (err) {
});
或者您可以查询 Survey
模型并包括 Question
和 Answer
:
Survery.findAll({
where: {
id: req.surveyId
},
include: {
model: Question,
include: {
model: Answer
}
}
}).then(function (surveys) {
console.log(surveys[0]);
}, function (err) {
});