I have a relation between two entites like (every chest has one user)
entities.Chest.belongsTo(entities.User)
i want to retrieve all chests and their users in one query, so i do
entities.Chest.findAll({include:[{model: entities.User}]})
But i prefer to manipulate them as plain objects, i do
entities.Chest.findAll({raw:true, include:[{model: entities.User}]})
And the result does not include users at all, how can i achieve this?
I have a relation between two entites like (every chest has one user)
entities.Chest.belongsTo(entities.User)
i want to retrieve all chests and their users in one query, so i do
entities.Chest.findAll({include:[{model: entities.User}]})
But i prefer to manipulate them as plain objects, i do
entities.Chest.findAll({raw:true, include:[{model: entities.User}]})
And the result does not include users at all, how can i achieve this?
Share Improve this question asked Nov 29, 2016 at 20:25 Andrew McFinleyAndrew McFinley 1311 gold badge2 silver badges6 bronze badges2 Answers
Reset to default 13This syntax helps for me. You haven't to iterate your records. Just use nest: true
and raw: true
in pairs;
entities.Chest.findAll({
raw:true,
nest: true,
include:[entities.User]
})
as you see, raw has some problems with joins (there is an issue) try just use instance method #toJSON
entities.Chest.findAll({include:[{model: entities.User}]})
.then(function(chestsSeq){
var chests = chestsSeq.toJSON(); //same as chestsSeq.get({});
//do something with raw chests object
});