#javascript #mongodb #sails.js #ejs
#javascript #mongodb #sails.js #ejs
Вопрос:
У меня проблемы со связыванием двух моделей в sails. У меня было две модели ‘Singer’ и ‘Country’. В модели ‘Singer’ у меня был атрибут ‘singer_country’, который означает идентификатор модели ‘Country’. Моя проблема в том, что я могу получить атрибут ‘country_name’ в модели ‘Country’, когда я показываю все свойства singer. Я не знаю, как это сделать. Ниже приведен мой код: Моя модель ‘Singer’
module.exports = {
attributes: {
singer_name:{
type: 'string',
required: true,
size: 50
},
singer_realname:{
type: 'string',
size: 50
},
singer_gender:{
type: 'string',
enum: ['Male', 'Female'],
defaultsTo: 'Male'
},
singer_brithday:{
type: 'int'
},
singer_image:{
type: 'string'
},
singer_description:{
type: 'string'
},
singer_country:{
type: 'string'
}
}
};
Моя модель «Country»:
module.exports = {
attributes: {
country_name: {
type: 'string'
}
}
};
Мой метод отображения свойств singer:
index: function(req, res, next){
Singer.find().exec(function foundSinger(err, singerObj){
if(err) return next(err);
res.view({
singers: singerObj,
});
});
},
Моей базой данных является MongoDB, я использую sails beta 0.10 rc8. Спасибо за помощь.
Ответ №1:
singer_country:{
model: 'Country'
}
Singer.find().populate('singer_country').exec(function foundSinger(err, singerObj){
if(err) return next(err);
res.view({
singers: singerObj,
});
});
Комментарии:
1. возвращает ошибку: «TypeError: Object [объект object] не имеет метода ‘populate'»
Ответ №2:
Здесь есть много других переменных, но если ваша ассоциация является взаимно однозначной, то ваш атрибут singer_country должен быть чем-то вроде
singer_country: {model: 'country'}
https://github.com/balderdashy/waterline-docs/blob/master/associations.md