Saltar al contenido

¿Cómo hacer una consulta de MongoDB ordenada en cadenas con -number postfix?

Solución:

MongoDB no puede ordenar por números almacenados como cadenas. Tiene que almacenar el número como un entero en su propio campo, rellenar con ceros a la izquierda o ordenar los resultados después de que hayan sido devueltos desde la base de datos.

Puedes usar

db.collectionName.find().sort({title: 1}).collation({locale: "en_US", numericOrdering: true})

El indicador numericOrdering es booleano y es opcional. Bandera que determina si comparar cadenas numéricas como números o como cadenas. Si es verdadero, compare como números; es decir, “10” es mayor que “2”. Si es falso, compare como cadenas; es decir, “10” es menor que “2”. El valor predeterminado es falso.

Si rellena los números con 0, podrá buscar como una cadena en el orden correcto, así que en lugar de 0,1,2,3,4,5,6,7,8,9,10,11 … utilice 01,02,03,04,05,06,07,08,09,10,11 … y una búsqueda de cadena los devolverá en orden.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *