2011-03-07 56 views
0

我正在用Mongodb編寫PHP應用程序。我可以搜索喜歡Mongodb中的排序值

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

,並導致了這樣的

同化

傳真

極強

大元帥

各處

柿子

柿子

類似

同樣

簡單

簡單的傷害

簡單

簡單

簡單

但我想有點像

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次。我不想從數據庫中獲取所有結果。所以,在數據庫中排序並通過分頁獲取結果。

回答

1

我敢肯定,在獲取結果後,您必須在自己的代碼中進行這種排序。我不知道有任何等效於SQL的AS

+0

是的,要進行自定義(基於功能)排序,你必須在客戶端進行排序。 – 2011-03-07 15:13:39

0

Mongodb集合具有sort操作,如果您想要更復雜的操作,請在客戶端執行操作。