【发布时间】:2016-12-13 18:24:52
【问题描述】:
我有以下型号:
'use strict';
module.exports = function(sequelize, DataTypes) {
var Collection = sequelize.define("Collection", {
name: DataTypes.STRING,
customer: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
Collection.hasMany(models.Items);
}
}
});
return Collection;
};
'use strict';
module.exports = function(sequelize, DataTypes) {
var Item = sequelize.define("Item", {
itemId: {
type: DataTypes.STRING,
primaryKey: true
}
}, {
classMethods: {
associate: function(models) {
Item.belongsToMany(models.Collection);
}
}
});
return Item;
};
假设我想获取特定客户的所有集合及其项目,其中一个项目包含 itemId。 我的查询如下:
models.Collection.findAll({
where: {
customer: customerParam
},
include: [{
model: models.Item,
where: {
itemId: itemParam
}
}]
}).then(function(collections) {
console.log(collections);
})
问题是这个查询过滤了我得到的集合中的项目,现在它们只包含具有相同 itemId 的项目,而不是包含集合的所有项目。
【问题讨论】:
标签: node.js express sequelize.js