替代跳过和限制任意sortingmongoose分页

让我开始说,我读过( MongoDB – 分页 ),使用跳过和限制分页对性能是不利的,它更好地sorting像dateCreated和修改每个页面的查询。

在我的情况下,我让用户指定参数进行sorting。 有些可能是按字母顺序的。 为这种任意sorting指定查询似乎相当困难。

是否有一个性能友好的方式来分页与任意sorting?

 mongoose.model('myModel').find({...}) .sort(req.sort) ... 

次要问题:我需要担心什么规模?

我不认为你可以做到这一点。

但在我看来最好的方法是build立你的查询取决于你的req.sort var。 例如(它是用coffescript写的)

 userSort = {name:1} if req.sort? and req.sort="name" userSort = {date:1} if req.sort? and req.sort="date" userSort = {number:1} if req.sort? and req.sort="number" find {}, null , {skip : 0 , limit: 0, sort : userSort } , (err,results)->