Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

cursor.intercalación() (método mongosh)

cursor.collation(<collation document>)

Importante

Método mongosh

Esta página documenta un método mongosh. Esta no es la documentación para un driver específico de lenguaje, como Node.js.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

Especifica la intercalación para el cursor devuelto por el db.collection.find(). Para usarlo, añádelo a la db.collection.find().

El cursor.collation() acepta el siguiente documento de intercalación:

{
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

Al especificar la intercalación, el campo locale es obligatorio; todos los demás campos de intercalación son opcionales. Para las descripciones de los campos, consulta Documento de intercalación.

Campo
Tipo
Descripción

locale

string

La localización de ICU. Consulte Idiomas y localizaciones compatibles para obtener una lista de las localizaciones admitidas.

Para especificar una comparación binaria simple, especifique el valor locale de "simple".

strength

entero

Opcional. El nivel de comparación que se debe realizar. Corresponde a Niveles de comparación de ICU. Los valores posibles son:

  • 1: Nivel primario de comparación. La cotejación realiza comparaciones solo de los caracteres base, ignorando otras diferencias como los diacríticos y las mayúsculas/minúsculas.

  • 2Nivel secundario de comparación. La cotejación realiza comparaciones hasta diferencias secundarias, como los signos diacríticos. Es decir, compara caracteres base (diferencias primarias) y signos diacríticos (diferencias secundarias). Las diferencias entre caracteres base tienen prioridad sobre las secundarias.

  • 3Nivel terciario de comparación. La cotejación realiza comparaciones hasta diferencias terciarias, como mayúsculas y minúsculas y variantes de letras. Es decir, la cotejación compara caracteres base (diferencias primarias), diacríticos (diferencias secundarias) y mayúsculas y minúsculas y variantes (diferencias terciarias). Las diferencias entre caracteres base tienen prioridad sobre las diferencias secundarias, que a su vez tienen prioridad sobre las diferencias terciarias.

    Este es el nivel por defecto.

  • 4: Nivel cuaternario. Limitado para casos de uso específicos para considerar la puntuación cuando los niveles 1-3 ignoran la puntuación o para procesar texto en japonés.

  • 5: Nivel idéntico. Limitado para el caso de uso específico de desempate.

Consulte Intercalación de ICU: Niveles de comparación para obtener más detalles.

caseLevel

booleano

Opcional. Indicador que determina si se debe incluir la comparación de mayúsculas y minúsculas en el nivel strength, 1 o 2.

Si true, incluye comparación de casos; es decir.

  • Cuando se usa con strength:1, la intercalación compara caracteres base y mayúsculas y minúsculas.

  • Cuando se usa con strength:2, la intercalación compara caracteres base, diacríticos (y otras posibles diferencias secundarias) y mayúsculas y minúsculas.

Si false, no incluya la comparación de mayúsculas y minúsculas en el nivel 1 o 2. El valor por defecto es false.

Para obtener más información, consulte Intercalación de ICU: Nivel de diferencias entre mayúsculas y minúsculas.

caseFirst

string

Opcional. Un campo que determina el orden de clasificación de las diferencias de mayúsculas y minúsculas durante las comparaciones de nivel terciario.

Los valores posibles son:

numericOrdering

booleano

Opcional. Indicador que determina si se deben comparar las strings numéricas como números o como strings.

Si true, compare como números; es decir, "10" es mayor que "2".

Si false, compare como cadenas de texto; es decir, "10" es menor que "2".

El valor por defecto es false.

alternate

string

Opcional. Campo que determina si la intercalación debe considerar los espacios en blanco y la puntuación como caracteres base a los efectos de la comparación.

Los valores posibles son:

  • "non-ignorable"Los espacios en blanco y la puntuación se consideran caracteres básicos.

  • "shifted": Los espacios en blanco y la puntuación no se consideran caracteres básicos y solo se distinguen en niveles de fuerza superiores a 3.

Consulte Intercalación de ICU: Niveles de comparación para obtener más información.

El valor por defecto es "non-ignorable".

maxVariable

string

Opcional. Campo que determina hasta qué caracteres se consideran ignorables cuando alternate: "shifted". No tiene efecto si alternate: "non-ignorable".

Los valores posibles son:

  • "punct": Tanto los espacios en blanco como la puntuación son "ignorables", es decir, no se consideran caracteres básicos.

  • "space": Los espacios en blanco son "ignorables", es decir, no se consideran caracteres básicos.

backwards

booleano

Opcional. Indicador que determina si las strings con diacríticos se ordenan desde el final de la string, como en algunos ordenamientos de diccionarios franceses.

Si true, compare de atrás hacia adelante.

Si false, compare de adelante hacia atrás.

El valor por defecto es false.

normalization

booleano

Opcional. Indicador que determina si se debe verificar si el texto requiere normalización y realizar la normalización. En general, la mayoría del texto no requiere este procesamiento de normalización.

Si true, compruebe si está completamente normalizado y realice la normalización para comparar el texto.

Si false, no lo comprueba.

El valor por defecto es false.

Consulta https://unicode-org.github.io/icu/userguide/collation/concepts.html#normalization para más detalles.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Considera una colección foo con los siguientes documentos:

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

La siguiente operación especifica un filtro de query de x: "a". La operación también incluye una opción de intercalación con locale: "en_US" (localización de inglés estadounidense) y strength: 1 (comparar solo caracteres base; es decir, ignorar mayúsculas y diacríticos):

db.foo.find( { x: "a" } ).collation( { locale: "en_US", strength: 1 } )

La operación devuelve los siguientes documentos:

{ "_id" : 1, "x" : "a" }
{ "_id" : 2, "x" : "A" }
{ "_id" : 3, "x" : "á" }

Si no especificas la intercalación, es decir db.collection.find( { x: "a" } ), la query sólo coincidirá con el siguiente documento:

db.foo.find( { x: "a" } )

Puedes encadenar otros métodos de cursor, como cursor.sort() y cursor.count(), a cursor.collation():

db.collection.find({...}).collation({...}).sort({...});
db.collection.find({...}).collation({...}).count();

Nota

No puedes especificar varias intercalaciones para una operación. Por ejemplo, no puedes especificar diferentes intercalaciones por campo, o si realizas una búsqueda con un ordenamiento, no puedes usar una intercalación para la búsqueda y otra para el ordenamiento.

Califique esta página