我正在用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次。我不想从数据库中获取所有结果。因此,在数据库中排序并使用分页获取结果。
答案 0 :(得分:1)
我很确定在获取结果后你必须在自己的代码中进行这种排序。我不知道任何等同于SQL的AS
。
答案 1 :(得分:0)
Mongodb集合有sort操作,如果你想要更复杂的操作,可以在客户端进行。