J'écris l'application PHP avec Mongodb. Je recherche commeTrier la valeur dans Mongodb
$regex='/.*sim.*/i';
$find['Word']=new mongoRegex($regex);
$cursor = $collection->find($find);
et a obtenu le résultat comme celui-ci
assimilent
fac-similé
fortissimo
généralissime
passim
kakis
kakis
similaire
De même
simples
mal simples
plus simple
simple
simplement
Mais je veux trier comme
1. sim
2. sim*
3. *sim*
4. sim*
Comment écrit l'expression régulière ou comment trier comme ça? En MySQL, j'ai écrit
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`
Maintenant, je prévois de changer MySQL en Mongodb mais le problème est la recherche du résultat. Je ne peux pas trier les résultats comme MySQL dans mongodb.
Mise à jour:
Je sort récupérer les données, mais le problème est la pagination. Le résultat viendra plus de 1000 par fois. Je ne veux pas récupérer tous les résultats de la base de données. Donc, triez dans la base de données et récupérez le résultat avec pagination.
Oui, pour effectuer un tri personnalisé (basé sur une fonction), vous devez le faire dans le client. –