2017-04-09 81 views
1
using sequelize 3.30.1 

我有两个模型通过关联分类和产品相关。sequalize搜索关联

var Category = sequelize.define('Category', 
    { name: DataTypes.STRING }); 

}; 

var Product = sequelize.define("Product", { 

price:{type:DataTypes.INTEGER,UNSIGNED:true}, 
{ 
    classMethods: { 
    associate: function() { 

    Product.belongsTo(Category, { 
     foreignKey: { 
     name: 'category', 
     allowNull: false 
     } 
    }); 

}); 

我怎么能搜索与Category.name%CatName%产品?

回答

0

抱歉,刚刚重新格式化您的代码:

var Category = sequelize.define('Category', 
    { 
    name: DataTypes.STRING 
    }); 

var Product = sequelize.define("Product", 
    { 
    price: { 
    type: DataTypes.INTEGER, 
    UNSIGNED:true 
    }, 
    classMethods: { 
     associate: function() { 
     Product.belongsTo(Category, {foreignKey: {name: 'category', allowNull: false}}); 
     } 
    } 
    }); 

现在你有两个模型和定义的关联,您可以使用的findAll()方法来查询。

var catName = 'book'; 

Product.findAll({ 
    include : [ 
    { 
     model: Category, 
     where: { 
     name: { 
      $like: '%' + catName + '%' 
     } 
     } 
    } 
    ] 
}) 
.then(function(
    console.log(result); 
}); 

看看是否有用。