Emberjs 不返回所有记录

Emberjs not returning all records

我正在使用 SANE 堆栈,它由 Sails 和 Emberjs 组成。我还使用 MongoDB 作为数据存储。

当我在 Sailsjs 方面执行类似以下操作时;

Parent.find(req.query.id).populate('children').exec(function(err, parent){
  console.log('children.length = ' + parent[0].children.length);
});

我得到 212

但是当我在 Emberjs 方面执行类似以下操作时;

parent.get('children').then(function(children){
  console.log('children.length = ' + children.length);
});

我得到 30 个。

事实上,一旦记录数超过30条,没关系ember只会return 30条记录。

有什么方法可以得到其余的记录吗?我实际上需要记录,所以我可以排序和计算一些东西。我不只是展示它们。

如有任何帮助,我们将不胜感激。

说明

那是因为 Sails 中的默认响应限制是 30 条记录。它显然在那里,所以如果你有 10k 或 100 万行,你不会发出一些正常的请求,并且不小心将整个数据库转储到客户端并导致一切崩溃。

这在此处记录:

http://sailsjs.org/documentation/reference/configuration/sails-config-blueprints

defaultLimit (default: 30)

The default number of records to show in the response from a "find" action. Doubles as the default size of populated arrays if populate is true.

它也记录在您的 sails 应用程序的 config/blueprints.js 文件中: https://github.com/balderdashy/sails-generate-backend/blob/master/templates/config/blueprints.js#L152-L160.

相关代码如下:https://github.com/balderdashy/sails/blob/master/lib/hooks/blueprints/actionUtil.js#L291

解决方案

  1. 编辑 config/blueprints.js 文件中的 defaultLimit

  1. &limit=<number> 添加到您的 http 请求 URL