所以在使用NodeJS和Express进行API调用时遇到了一个问题。我使用
export async function main(req, res) {
try {
const tokens = await tokenModel.find({}).lean();
res.json(tokens);
} catch {(err) => {
res.status(500).json({ message: err.message })
console.log('err', err.message)
}
}
console.log('Get Data')
}
现在这个请求工作得很好,并返回了我需要的数据。问题是我有超过10K的文档,在PC上大约需要10秒钟才能返回这些数据,而在移动的上需要超过45秒钟。我知道手机网络很重要,但有没有什么方法可以增加这一点?我试过的都不起作用。我一直发现精益是使用的选择,而且我已经在使用它了,没有成功也没有改进。
1条答案
按热度按时间dpiehjr41#
嗯,它很慢,因为您要返回所有的10k结果。
你真的需要所有的10k结果吗?如果不需要,你应该考虑只过滤你真正需要的结果。
如果没有,我建议实现分页,这样可以成批返回结果(例如每页50个)。
此外,如果您只使用文档中的一些字段,您应该告诉MongoDB只返回这些字段,而不是所有字段,这也会提高性能,因为通过网络传输的数据会更少。