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

时间:2019-05-20 15:31:02

标签: javascript node.js mongodb mongoose

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

想象我们有一个端点GET,用于获取所有已过期的带有过滤器的票证

endpoint =>  GET v1/tickets?expire=true

我想拥有关于速度和性能的最佳实践,通常我们使用一些ORM条件来获取过滤器数据(这里是过期的凭单),我正在使用猫鼬,并且可以这样做

const tickets = Ticket.find( { expire: 'true' } ) 

并且我们还可以获取所有票证并使用javascript(例如filter方法)以编程方式实现条件

  

注意:考虑到我们可以有更多条件,例如(   expire&updated=date&name= ...

我的意思是拿到所有门票

const tickets = Ticket.find();

if(req.query.expire) {
    tickets.filter(...);
}

记住 我想要最佳性能和此解决方案,只是因为我认为mongoDB中的条件可能比使用js过滤器更低,现在我问你们是正确的,哪种方法更好?

1 个答案:

答案 0 :(得分:2)

绝对比第二种方法更好,这意味着您必须为DB或ORM设置条件,而不是在代码中设置此条件,因为

  1. 您在服务器上引入了更多流程
  2. 每个请求获取所有数据并导致所有数据很大,您必须等待更多时间才能从数据库获取数据