【发布时间】:2011-03-07 04:57:39
【问题描述】:
我正在用 Mongodb 编写 PHP 应用程序。我可以像这样搜索
$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 次。我不想从数据库中获取所有结果。因此,在数据库中排序并通过分页获取结果。
【问题讨论】: