2015-07-21 47 views
0

我正在使用Mongoose的中间件处理节点JS + Mongo DB中的rest API,其中一种方法允许恢复与特定用户关联的内容。如何在节点JS + Mongo DB REST API中流数据?

到目前为止,我一直在检索所有用户的内容,但是数据量开始增长,现在我需要以某种方式流式传输数据。

我想要实现的行为是服务器用10-20个项目流回答请求,然后如果客户端需要更多的数据,它需要发送另一个请求,这将被回答以下10-20项。

我所能想出的就是回答这些前10-20个项目,然后在客户需要更多数据的情况下,为我的方法提供一个新的(可选)参数,这将允许客户发送最后一个项目的ID,这样服务器可以发回以下10-20项。

我知道这种方法可行,但我觉得它太过原始;有一个更清晰的方式来实现这种行为,因为这是许多Web应用程序必须实现的行为。

所以,我的问题是:你知道有更好的方法来解决这个问题吗?

在此先感谢。

回答

1

提供阅读能力的偏移,并从该请求的限制,那么这样做:

db.collection.find().skip(20).limit(10) 

此外,设置你建立,从而使他人不能一次要求一百万条记录的API默认。也许max结果总是200,如果请求没有设置上述参数,则返回前200个结果。

+0

是的,但是如果在第一个请求之后创建了新项目呢? –

+0

当跳过和限制条件获取数据库中的最后结果时,它们将出现在结果集中。订单取决于它们在数据库中的插入时间,以便它们在此处显示。 – Brant