【问题标题】:Alternative to skip and limit for mongoose pagination with arbitrary sorting使用任意排序替代跳过和限制猫鼬分页
【发布时间】:2013-10-21 06:31:06
【问题描述】:

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

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

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

例子

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

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

【问题讨论】:

标签: node.js mongodb sorting pagination mongoose


【解决方案1】:

我认为你做不到。

但在我看来,最好的方法是根据你的 req.sort 变量来构建你的查询。 例如(它是用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)->

【讨论】:

    猜你喜欢
    • 2019-05-31
    • 2013-03-20
    • 2015-10-08
    • 2016-03-07
    • 2019-07-22
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    相关资源
    最近更新 更多