NodeJS和MongoDB查询速度慢

0yg35tkg  于 2022-12-18  发布在  Go
关注(0)|答案(1)|浏览(220)

所以在使用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秒钟。我知道手机网络很重要,但有没有什么方法可以增加这一点?我试过的都不起作用。我一直发现精益是使用的选择,而且我已经在使用它了,没有成功也没有改进。

dpiehjr4

dpiehjr41#

嗯,它很慢,因为您要返回所有的10k结果。
你真的需要所有的10k结果吗?如果不需要,你应该考虑只过滤你真正需要的结果。
如果没有,我建议实现分页,这样可以成批返回结果(例如每页50个)。
此外,如果您只使用文档中的一些字段,您应该告诉MongoDB只返回这些字段,而不是所有字段,这也会提高性能,因为通过网络传输的数据会更少。

相关问题