Bulk.find.collation()
Descrição
Bulk.find.collation(<document>)
Novidade na versão 3.4.
Especifica oagrupamento para gravações em massa. Anexar ao método
Bulk.find()
para especificar agrupamento para a operação de localização.O
Bulk.find.collation()
aceita o seguinte documento de agrupamento :{ locale: <string>, caseLevel: <boolean>, caseFirst: <string>, strength: <int>, numericOrdering: <boolean>, alternate: <string>, maxVariable: <string>, backwards: <boolean> } Ao especificar agrupamento, o campo
locale
é obrigatório; todos os outros campos de agrupamento são opcionais. Para obter descrições dos campos, consulte Documento de agrupamento.CampoTipoDescriçãolocale
stringO local da UTI. Consulte Idiomas e localidades compatíveis para obter uma lista das localidades suportadas.
Para especificar uma comparação binária simples, especifique
locale
valor de"simple"
.strength
inteiroOpcional. O nível de comparação a ser executado. Corresponde aos níveis de comparação da UTI. Os valores possíveis são:
ValorDescrição1Nível primário de comparação. O agrupamento realiza comparação apenas dos caracteres básicos, ignorando outras diferenças, como diacríticos, maiúsculas e minúsculas.2Nível secundário de comparação. O agrupamento realiza comparações até diferenças secundárias, como diacríticos. Ou seja, o agrupamento realiza comparações de caracteres básicos (diferenças primárias) e sinais diacríticos (diferenças secundárias). As diferenças entre caracteres básicos têm precedência sobre diferença secundária.3Nível terciário de comparação. O agrupamento realiza comparações até diferenças terciárias, como variantes de maiúsculas e minúsculas. Ou seja, o agrupamento realiza comparações de caracteres básicos (diferenças primárias), diacríticos (diferenças secundárias) e caso e variantes (diferenças terciárias). Diferenças entre caracteres básicos tem precedência sobre diferenças secundárias, que tem precedência sobre as diferenças terciárias.
Este é o nível padrão.
4Nível quaternário. Limitado para casos de uso específicos para considerar a pontuação quando os níveis 1-3 ignoram a pontuação ou para processar texto em japonês.5Nível idêntico. Limitado para casos de uso específicos do disjuntor tie .Consulte Agrupamento de ICU: Níveis de Comparação para detalhes.
caseLevel
booleanoOpcional. Sinalizador que determina se a comparação de caso deve ser incluída no nível
strength
1
ou2
.Se
true
, inclua comparação de caso; isto é,Quando usado com
strength:1
, o agrupamento compara caracteres básicos e maiúsculas e minúsculas.Quando usado com
strength:2
, o agrupamento compara caracteres básicos, diacríticos (e outras possíveis diferenças secundárias) e maiúsculas e minúsculas.
Se
false
, não inclua comparação de caso no nível1
ou2
. O padrão éfalse
.Para obter mais informações, consulte Agrupamento do ICU: nível de caso.
caseFirst
stringOpcional. Um campo que determina a ordem de classificação das diferenças entre maiúsculas e minúsculas durante comparações de nível terciário.
Os valores possíveis são:
ValorDescrição"superior"As maiúsculas são classificadas antes das minúsculas."inferior"As minúsculas são classificadas antes das maiúsculas."OFF"Valor padrão. Semelhante a"lower"
com pequenas diferenças. Consulte a página https://unicode-org.github.io/icu/userguide/strings/properties.html#customization para ver um detalhamento das diferenças.numericOrdering
booleanoOpcional. Sinalizador que determina se as strings numéricas devem ser comparadas como números ou como strings.
Se
true
, compare como números; ou seja,"10"
é maior que"2"
.Se
false
, compare como strings; ou seja,"10"
é menor que"2"
.O padrão é
false
.alternate
stringOpcional. Campo que determina se o agrupamento deve considerar espaços em branco e pontuação como caracteres base para fins de comparação.
Os valores possíveis são:
ValorDescrição"non-ignorable"
Espaço em branco e pontuação são considerados caracteres básicos."shifted"
Espaço em branco e pontuação não são considerados caracteres base e só se distinguem em níveis de força superiores a 3.Consulte Agrupamento de ICU: Níveis de Comparação para obter mais informações.
O padrão é
"non-ignorable"
.maxVariable
stringOpcional. Campo que determina até quais caracteres são considerados ignoráveis quando
alternate: "shifted"
. Não tem efeito sealternate: "non-ignorable"
Os valores possíveis são:
ValorDescrição"punct"
Tanto os espaços em branco quanto a pontuação são "ignoráveis", ou seja, não são considerados caracteres básicos."space"
Os espaços em branco são "ignoráveis", ou seja, não são considerados caracteres básicos.backwards
booleanoOpcional. Bandeira que determina se as cadeias com sinais diacríticos são classificadas de trás da string, como com alguns pedidos no dicionário francês.
Se
true
, compare de trás para frente.Se
false
, compare de frente para trás.O valor padrão é
false
.normalization
booleanoOpcional. Sinalizador que determina se é necessário verificar se o texto requer normalização e para realizar a normalização. Geralmente, a maioria dos textos não exige esse processamento de normalização.
Se
true
, verifique se está totalmente normalizado e realize normalização para comparar o texto.Se
false
, não verifica.O valor padrão é
false
.Consulte https://unicode-org.github.io/icu/userguide/collation/concepts.html#normalization para obter detalhes.
Exemplo
O exemplo a seguir inicializa um construtor de operações Bulk()
para a collection myColl
e especifica um agrupamento para o filtro de localização.
var bulk = db.myColl.initializeUnorderedBulkOp(); bulk.find( { category: "cafe" } ).collation({ locale: "fr", strength: 1 }).update( { $set: { status: "I", points: "0" } } ); bulk.execute();