如何让Bookshelf.js返回所有行,包括具有重复数据的行

时间:2017-08-05 17:35:17

标签: javascript node.js knex.js bookshelf.js

我正在使用Bookshelf.jsKnex.js向我的数据库查询数据,但似乎 ORM 并未返回与我的查询匹配的所有行。我的查询如下:

MyModel.where({id: req.params.id})
.fetchAll({withRelated: ['children.children']})
.then(result => {
  res.send(JSON.stringify({myData: result}));
});

这会返回我需要的一些数据,但是在每列中包含相同数据的行时,会有不同的唯一ID。因此,它们是仅包含相同数据的不同条目。我需要此函数来返回所有行,而不是过滤掉其中包含相同数据的任何行。

现在我明白,最好避免重复数据,但我需要为我的特定用例提供全部数据。是否有Bookshelf.jsKnex.js可以返回所有行的方式,而不是过滤掉“认为”是重复数据的内容。

1 个答案:

答案 0 :(得分:0)

Knex / bookshelf不会过滤掉“它认为”重复的任何数据。如果您要查询id = req.params.id knex将返回请求id的所有行的所有行。

尝试使用DEBUG=knex:*环境变量运行代码,以查看书架发送给DB的查询。如果查询似乎有误,请将其添加到问题中。如果结果似乎是错误的,请检查数据库内容并将该信息添加到问题中。