2

首先让我说我已经读过(MongoDB - paging),使用跳过和限制进行分页对性能不利,最好按类似的东西排序dateCreated并修改每个页面的查询。

就我而言,我让用户指定要排序的参数。有些可能是按字母顺序排列的。为这种类型的任意排序指定查询似乎相当困难。

是否有一种性能友好的方式来进行任意排序的分页?

例子

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

第二个问题:我需要在多大程度上担心这个问题?

4

1 回答 1

2

我不认为你能做到这一点。

但在我看来,最好的方法是根据你的 req.sort var 来构建你的查询。例如(它是用咖啡脚本写的)

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)->
于 2013-10-15T08:42:55.873 回答