sequalize搜索关联

时间:2017-04-09 14:25:12

标签: node.js sequelize.js

using sequelize 3.30.1

我通过关联有两个类别和产品相关的模型。

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%来搜索产品?

1 个答案:

答案 0 :(得分: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);
});

看看是否有效。