मैं जॉइनिंग टेबलक्या एसोसिएशन के साथ एसोसिएशन टेबल में विशेषताओं से एक क्वेरी फ़िल्टर करना संभव है?
में मेरी क्वेरी को फ़िल्टर करने का प्रयास कर रहा हूं। मेरे पास 2 टेबल शहर और श्रेणियां हैं जिन्हें मैं तीसरी तालिका CityCategory के माध्यम से जोड़ रहा हूं। विचार CityCategory
पर किसी शहर से संबंधित श्रेणियां प्राप्त करना है। year
एक विशिष्ट पूर्णांक है।
module.exports = function(sequelize, DataTypes) {
var CityCategory = sequelize.define('CityCategory', {
year: {
type: DataTypes.INTEGER,
allowNull: false,
validate: {
notNull: true
}
}
}, {
indexes: [{
unique: true,
fields: ['CityId', 'CategoryId', 'year']
}]
});
return CityCategory;
};
City.belongsToMany(models.Category, {
through: {
model: models.CityCategory
}
});
Category.belongsToMany(models.City, {
through: {
model: models.CityCategory
}
});
यह क्वेरी मैं वर्तमान में कर रहा हूँ है असफल का उपयोग कर:
City.find({
where: {id: req.params.id},
attributes: ['id', 'name'],
include: [{
model: Category,
where: {year: 2015},
attributes: ['id', 'name', 'year']
}]
})
.then(function(city) {
...
});
दुर्भाग्य से मुझे यकीन है कि कैसे उपयोग करने के लिए sequelize बताने के लिए नहीं कर रहा हूँ
यह कैसे मैं संघों निर्दिष्ट है सिटी मॉडल की सालाना विशेषता श्रेणी मॉडल में 'वर्ष' नामक एक विशेषता की तलाश में ...
Unhandled rejection SequelizeDatabaseError: ER_BAD_FIELD_ERROR: Unknown column 'Category.CityCategory.year' in 'where clause'
क्या यह संभव है या मुझे जाना होगा और मैन्युअल रूप से मेरी कस्टम क्वेरी लिखनी होगी?
अग्रिम में बहुत धन्यवाद!
संपादित
मैं एक छोटे से अधिक के आसपास खेल रहा है और एक समाधान मिल गया! यह थोड़ा गन्दा लगता है इसलिए मुझे यकीन है कि एक बेहतर तरीका होना चाहिए।
City.find({
where: {id: req.params.id},
attributes: ['id', 'name'],
include: [{
model: Category,
where: [
'`Categories.CityCategory`.`year` = 2015'
],
attributes: ['id', 'name', 'year']
}]
})
.then(function(city) {
...
});
यह बहुत बेहतर है, बहुत बहुत धन्यवाद जनवरी! – pire
मॉडल के माध्यम से कोई नहीं है तो क्या होगा? – user3631341
@ user3631341 आपका क्या मतलब है - यह प्रश्न एसोसिएशन टेबल (मॉडल के माध्यम से उर्फ) पर फ़िल्टरिंग के बारे में है –