Sequelize包括范围为1的对象:m constraint = false

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sequelize包括范围为1的对象:m constraint = false相关的知识,希望对你有一定的参考价值。

我想在其他表中使用相同的表Photo。我读了Sequelize doc here,他们使用范围并设置约束= false这样

const Comment = this.sequelize.define('comment', {
  title: Sequelize.STRING,
  commentable: Sequelize.STRING,
  commentable_id: Sequelize.INTEGER
});

Comment.prototype.getItem = function(options) {
  return this['get' + this.get('commentable').substr(0, 1).toUpperCase() + this.get('commentable').substr(1)](options);
};

Post.hasMany(this.Comment, {
  foreignKey: 'commentable_id',
  constraints: false,
  scope: {
    commentable: 'post'
  }
});
Comment.belongsTo(this.Post, {
  foreignKey: 'commentable_id',
  constraints: false,
  as: 'post'
});

我的问题是:我如何查询包含每个帖子的列表评论的帖子列表(如果可以的话,有限制)。谢谢。

答案

我如何查询包含每个帖子的列表评论的帖子列表

在这里,试试这个

Post
  .find({
    where: { /* include where condition if you have or remove this */ },
    include: [{
      model: Comment,
      as: 'comments',
    }],
  })
  .then(function(result) {
    // check result.dataValues. it should contain `comments` array
  });

我想这个限制尚不可用。检查这个更新https://github.com/sequelize/sequelize/issues/1897

以上是关于Sequelize包括范围为1的对象:m constraint = false的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize – 寻找范围内的点

sequelize模型

Sequelize - 仅包括找到一个结果

在mysql Sequelize + Nodejs中将数组和对象转换为批量插入

Sequelize 将传递的日期对象转换为本地日期

Javascript(NodeJs) - 将数组和对象转换为 mysql 中的批量插入(Sequelize)