首先我要说的是,我已经读过(MongoDB - paging)使用跳过和限制分页对性能不利,最好按dateCreated
之类的方式进行排序并修改查询每个页面。
在我的情况下,我让用户指定要排序的参数。有些可能按字母顺序排列。为这种类型的任意排序指定查询似乎相当困难。
是否有一种性能友好的方式来对任意排序进行分页?
实施例
mongoose.model('myModel').find({...})
.sort(req.sort)
...
次要问题:我需要在多大程度上担心这个问题?
答案 0 :(得分:2)
我认为你不能这样做。
但在我看来,最好的方法是根据你的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)->