Node.js 续集连接和限制

Node.js 续集连接和限制,node.js,postgresql,sequelize.js,Node.js,Postgresql,Sequelize.js,我正在尝试使用Sequelize to join和select+limit形成一个查询。让我举例说明这个问题: 我有一种多对多的关系:Book-Reader。一个读者可以有很多书,一本书可以有很多读者 给定一本书的id,我想翻阅它所有的阅读器。 这是我目前尝试的,它有一些问题。首先,分页不起作用。其次,当我只需要Reader时,它仍然选择Book以及Reader的所有属性(我将扔掉所有Book) 关于如何正确形成此查询,有什么建议吗?我不确定这是否有效,但将限制应用于您想要限制的模型是有意义的:

我正在尝试使用Sequelize to join和select+limit形成一个查询。让我举例说明这个问题:

我有一种多对多的关系:
Book
-
Reader
。一个读者可以有很多书,一本书可以有很多读者

给定一本
书的id
,我想翻阅它所有的
阅读器。
这是我目前尝试的,它有一些问题。首先,分页不起作用。其次,当我只需要
Reader
时,它仍然选择
Book
以及
Reader
的所有属性(我将扔掉所有
Book


关于如何正确形成此查询,有什么建议吗?

我不确定这是否有效,但将限制应用于您想要限制的模型是有意义的:

Book.findOne({
  id: bookId,
  include: [ { model: Reader, limit: 10, offset: 30 } ]
}).then(function(book) {
  return book.readers;
});

限制/偏移仍然不起作用,嵌套include modelsYep的“不列出限制/偏移”选项。似乎有一个功能要求,但现在似乎没有任何方法可以做到这一点,而不需要查询两次。但是,既然您知道引用,就可以使这两个查询与Promise.all()并行运行。对不起,我没有这样做,我该如何并行运行呢?这是一个多对多模型,所以我需要连接表来获取所有
读卡器的ID/我不能直接查询
读卡器
表。嗯。。。多对多可能会造成问题,但您可以反转查询,仍然可以得到图书和读者:Reader.findAll({include[{model:book,where:{id:bookId},required:true}],limit:10,offset:30});仍然存在一些问题,最终使用了一个原始查询来选择我需要的内容。
Book.findOne({
  id: bookId,
  include: [ { model: Reader, limit: 10, offset: 30 } ]
}).then(function(book) {
  return book.readers;
});