Mongodb中的排序值

时间:2011-03-07 04:57:40

标签: sorting mongodb

我正在用Mongodb编写PHP应用程序。我可以搜索

$regex='/.*sim.*/i'; 
$find['Word']=new mongoRegex($regex); 
$cursor = $collection->find($find); 

得到了这样的结果

  

同化

     

传真

     

fortissimo

     

大元帅

     

passim

     

柿子

     

persimmons

     

类似

     同样

     

简单

     

简单的伤害

     

更简单

     最简单的

     

简单地

但我想要像

那样排序
1. sim 
2. sim* 
3. *sim* 
4. sim* 

如何编写正则表达式或如何排序?在MySQL中,我写了

SELECT * , IF( `Word` = 'sim', 1, IF( `Word` LIKE 'sim%', 2, IF( `Word` LIKE '%sim', 4, 3 ) ) ) AS `sort` FROM `dblist` WHERE `Word` LIKE '%sim%' ORDER BY `sort` , `Word`

现在,我打算将MySQL改为Mongodb,但问题是搜索结果。我无法在mongodb中对MySQL进行排序。

更新

我可以在获取数据后进行排序,但问题是分页。结果每次超过1000次。我不想从数据库中获取所有结果。因此,在数据库中排序并使用分页获取结果。

2 个答案:

答案 0 :(得分:1)

我很确定在获取结果后你必须在自己的代码中进行这种排序。我不知道任何等同于SQL的AS

答案 1 :(得分:0)

Mongodb集合有sort操作,如果你想要更复杂的操作,可以在客户端进行。