我正在为我的项目使用 angular-fullstack 生成器。这真的很方便,因为它有助于搭建你的 API。
我在测试我的 API 时遇到了一个问题。如果我的 API 只返回几个结果,一切似乎都很好,但如果结果的大小很大,例如。超过100,则重复返回。这是我的一种查询方法。
Flight.find({pilot: req.params.pilot}, function (err, flight) {
console.log("flight: ", flight.length); // returns correct number of results
if(err) { return handleError(res, err); }
if(!flight) { return res.send(404); }
return res.json(flight);
});
例如只有 3 个时的返回结果是这样的:
[
{
"_id": "552edd6cfa67a54c302bf9b6",
"pilot": "Austin",
"__v": 0
},
{
"_id": "552edd6cfa67a54c302bf9b7",
"pilot": "Austin",
"__v": 0
},
{
"_id": "552edd6cfa67a54c302bf9b8",
"pilot": "Austin",
"__v": 0
}
]
但是更大的数据集总是重复的,例如:
[
{
// imagine 100+ objects
}
]
[
{
// imagine the exact same 100+ objects - with same ids as above
}
]
为什么会这样?当我直接从 MongoDB 终端检查总结果时,它具有正确数量的结果,在我上面的查询方法中的控制台日志中也是如此,但是浏览器中的结果在大型集合上重复。
更新:
我还发现,如果我限制返回的字段,我不会得到重复的结果。每个项目中大约有 10 个字段,如果我只显示名称,例如它不会重复,如果我添加大约 3 个字段,它会再次重复所有结果。