自定义.find()绑定到Sequelize Model

时间:2015-06-20 16:47:53

标签: model find sequelize.js

在文档中找不到我想要的内容,所以我只想把它留在这里并希望得到一些帮助!

我有一个特定的查询,我需要在我的用户模型上运行,包含很多包含,并且包含所有包含where语句的内容... 所以,我想整理我的控制器并放置这个逻辑

User.findById(userId, {include: [{ model: Model1, where: { aCondition: false} },{ model: Model2, where: { aCondition: false} },{ model: Model3, where: { aCondition: false} },{ model: Model4, where: { aCondition: false} },{ model: Model5, where: { aCondition: false} }]}).then() 进入模型本身所以我只能调用

User.findByIdWithIncludes(userId).then() 在我的控制器里面。

这个功能是否存在,我只是错过了它?

非常感谢任何帮助/建议。

谢谢!

2 个答案:

答案 0 :(得分:1)

这种选择可以使用“范围”来完成, http://sequelize.readthedocs.org/en/latest/docs/scopes/

通过这样定义你的模型:

var Project = sequelize.define('Model1', {
  // Attributes
}, {
  defaultScope: {
    where: {
      aCondition: false
    }
  }
});

它将与每个find()一起使用。 您可以定义多个范围。

答案 1 :(得分:0)

查看http://sequelize.readthedocs.org/en/latest/docs/models-definition/#expansion-of-models

这绝对让您有机会在模型上创建findByIdWithIncludes方法