Значение сортировки в Mongodb - PullRequest
0 голосов
/ 07 марта 2011

Я пишу PHP-приложение с Mongodb.Я могу искать как

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

и получить такой результат

ассимилировать

факсимиле

fortissimo

generalissimo

пассим

хурма

хурма

аналогично

аналогично

простой

простой больно

проще

проще

просто

Но я хочу отсортировать как

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, но проблема заключается в результате поиска.Я не могу отсортировать результаты, как MySQL, в mongodb.

Обновление:

Я могу отсортировать после получения данных, но проблема заключается в подкачке.Результат превысит 1000 раз.Я не хочу получать все результаты из базы данных.Итак, сортировка в базе данных и получение результата с разбивкой по страницам.

Ответы [ 2 ]

1 голос
/ 07 марта 2011

Я почти уверен, что вам придется выполнять такую ​​сортировку в своем собственном коде после получения результата.Я не знаю ни одного эквивалента SQL AS.

0 голосов
/ 07 марта 2011

Коллекция Mongodb имеет операцию sort , если вы хотите более сложные операции, сделайте это на стороне клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...