Docs Menu
Docs Home
/ /

Bulk.find.intercalación() (método mongosh)

Bulk.find.collation(<document>)

Especifica el Intercalación para escrituras masivas. Añádalo al método Bulk.find() para especificar la intercalación para la operación de búsqueda.

El Bulk.find.collation() acepta el siguiente documento de cotejo:

{
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 a realizar. Corresponde a los niveles de comparación de la UCI.Los valores posibles son:

Valor
Descripción

1

Nivel primario de comparación. La intercalación realiza comparaciones únicamente de los caracteres base e ignora otras diferencias, como los diacríticos y la diferencia entre mayúsculas y minúsculas.

2

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

3

Nivel terciario de comparación. La intercalación realiza comparaciones hasta diferencias terciarias, como las variantes de mayúsculas, minúsculas y de letras. Es decir, la intercalación realiza comparaciones de caracteres base (diferencias primarias), diacríticos (diferencias secundarias) y diferencias entre mayúsculas y minúsculas y variantes (diferencias terciarias). Las diferencias entre los 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 a un caso de uso específico para considerar la puntuación cuando los niveles 1-3 ignoran la puntuación o para el procesamiento de texto en japonés.

5

Nivel idéntico. Limitado para un 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:

Valor
Descripción

"upper"

Las mayúsculas se ordenan antes que las minúsculas.

«más bajo»

Las minúsculas se ordenan antes que las mayúsculas.

"apagado"

Valor por defecto. Similar a "lower" con pequeñas diferencias. Consulte https://unicode-org.github.io/icu/userguide/strings/properties.html#customization para ver más detalles sobre las diferencias.

numericOrdering

booleano

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

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

Si es false, comparar como cadenas; 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:

Valor
Descripción

"non-ignorable"

Los espacios en blanco y la puntuación se consideran caracteres base.

"shifted"

Los espacios en blanco y los signos de puntuación no se consideran caracteres base 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:

Valor
Descripción

"punct"

Tanto los espacios en blanco como la puntuación son "ignorables", es decir, no se consideran caracteres base.

"space"

Los espacios en blanco son "ignorables", es decir, no se consideran caracteres base.

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.

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

Este comando 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.

Una colección restaurants tiene los siguientes documentos:

db.restaurants.insertMany( [
{ _id: 1, category: "café", status: "Open" },
{ _id: 2, category: "cafe", status: "open" },
{ _id: 3, category: "cafE", status: "open" }
] )

El siguiente ejemplo inicializa un generador de operaciones para Bulk() la restaurants colección y especifica una intercalación para el filtro de búsqueda.

var bulk = db.restaurants.initializeUnorderedBulkOp();
bulk.find(
{ category: "cafe" }
).collation(
{ locale: "fr", strength: 1 }
).update(
{ $set: { status: "closed", points: "0" } }
);
bulk.execute();
{
acknowledged: true,
insertedCount: 0,
insertedIds: {},
matchedCount: 3,
modifiedCount: 3,
deletedCount: 0,
upsertedCount: 0,
upsertedIds: {}
}

La operación especifica una intercalación con strength: 1, lo que significa que ignora las diferencias entre mayúsculas y minúsculas y variantes de letras. Como resultado, aunque solo haya un documento que coincida exactamente con la cadena especificada en el filtro (cafe), la operación compara y actualiza todos los documentos de la colección.

Una vez completada la operación masiva, la colección contiene estos documentos:

[
{ _id: 1, category: 'café', status: 'closed', points: '0' },
{ _id: 2, category: 'cafe', status: 'closed', points: '0' },
{ _id: 3, category: 'cafE', status: 'closed', points: '0' }
]

Volver

Filtros de matriz de búsqueda masiva

En esta página