Javascript 提高从API获取条件数据的速度

Javascript 提高从API获取条件数据的速度,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我现在注意到一个想法,我想用Node创建一个API 假设我们有一个端点GET,用于获取所有带过滤器的过期票据 endpoint => GET v1/tickets?expire=true 我希望在速度和性能方面有最佳实践,通常我们使用一些ORM条件来获取过滤器数据(这里是过期票据),我使用Mongoose,可以这样做 const tickets = Ticket.find( { expire: 'true' } ) 此外,我们还可以使用javascript以编程方式获取所有票据和实

我现在注意到一个想法,我想用Node创建一个API

假设我们有一个端点
GET
,用于获取所有带过滤器的过期票据

endpoint =>  GET v1/tickets?expire=true
我希望在速度和性能方面有最佳实践,通常我们使用一些ORM条件来获取过滤器数据(这里是过期票据),我使用Mongoose,可以这样做

const tickets = Ticket.find( { expire: 'true' } ) 
此外,我们还可以使用javascript以编程方式获取所有票据和实现条件(例如
filter
method)

注:考虑到我们可以有更多的条件,比如(
过期和更新=日期和名称=…

我的意思是拿到所有的票

const tickets = Ticket.find();

if(req.query.expire) {
    tickets.filter(...);
}
记住
我想要最好的性能和这个解决方案,只是因为我认为mongoDB中的条件可能低于使用js的过滤器,现在我问你们是正确的,哪种方式更好?

第一种方式绝对优于第二种方式,这意味着你们必须为DB或ORM设置条件,而不是在代码中设置这个条件,因为

  • 在服务器上引入更多进程
  • 每个请求都会获取所有数据,因为所有数据都很大,所以您必须等待更长的时间才能从数据库获取数据

  • 你有没有检查这个请求需要多长时间才能下载你所有的票?这个要求有多大?那么,
    Ticket
    中的数据多久变化一次?1个问题:对此一无所知,2个问题:什么是多大?3个问题:lesscheck!你什么也没有得到,因为你的过滤速度快了10毫秒,但你的总体请求需要两倍的时间。最终,您建议在每次请求时将整个DB表下载到服务器,只是让服务器进行过滤;然后扔掉一半的数据。