Intercalación permite especificar reglas específicas del lenguaje para la comparación de strings, como reglas para el uso de mayúsculas y minúsculas y signos diacríticos.
Limitaciones
Se aplican las siguientes restricciones cuando el parámetro numericOrdering está configurado en true:
Solo se consideran en las comparaciones las substrings de enteros no negativos contiguos de dígitos.
numericOrderingno admite:+-exponentes
Solo los puntos de código Unicode en la categoría de Número o dígito decimal (Nd) se consideran dígitos.
Si la longitud del número supera los 254 caracteres, los caracteres excedentes se tratan como un número aparte.
Procedimiento
En Atlas, ve a la página Data Explorer de tu proyecto.
Si aún no aparece, se debe seleccionar la organización que contiene el proyecto en el menú Organizations de la barra de navegación.
Si aún no se muestra, seleccione su proyecto en el menú Projects de la barra de navegación.
En la barra lateral, haz clic en Data Explorer en la sección Database.
El Data Explorer se muestra.
IMPORTANTE: También puede hacer clic en el nombre de un grupo para abrir la barra Cluster lateral y luego hacer clic Data Explorer en debajo del Shortcuts encabezado.
Selecciona un valor para locale.
Se requiere seleccionar un locale de los lenguajes compatibles con MongoDB.
Todos los demás parámetros de opciones de intercalación son opcionales. Para obtener descripciones de los campos, consulta Intercalación.
Ejemplo
Considere una colección con los siguientes valores de strings numéricas y decimales:
[ { "n": "1" }, { "n": "2" }, { "n": "-2.1" }, { "n": "2.0" }, { "n": "2.20" }, { "n": "10"}, { "n": "20" }, { "n": "20.1" }, { "n": "-10" }, { "n": "3" } ]
La siguiente query utiliza un documento de intercalación que contiene el parámetro numericOrdering:
db.c.find( { }, { _id: 0 } ).sort( { n: 1 } ).collation( { locale: 'en_US', numericOrdering: true } )
Para obtener más información sobre cómo consultar documentos en Atlas, consulte Query sus datos.
Las operaciones devuelven los siguientes resultados:
[ { "n": "-2.1" }, { "n": "-10" }, { "n": "1" }, { "n": "2" }, { "n": "2.0" } { "n": "2.20" }, { "n": "3" }, { "n": "10" }, { "n": "20" }, {"n": "20.1" } ]
numericOrdering: trueordena los valores de strings en orden ascendente como si fueran valores numéricos.Los dos valores negativos
-2.1y-10no están ordenados en el orden de clasificación esperado porque tienen caracteres-no admitidos.