$strcasecmp (agregação)
Nesta página
Definição
$strcasecmp
Executa comparação sem distinção entre maiúsculas e minúsculas de duas strings. Devoluções
1 se a primeira string for "maior que" a segunda string.
0 se as duas strings forem iguais.
-1 se a primeira string for "menor que" a segunda string.
$strcasecmp
tem a seguinte sintaxe:{ $strcasecmp: [ <expression1>, <expression2> ] } Os argumentos podem ser qualquerexpressão válida, desde que produzam strings. Para obter mais informações sobre expressões, consulte Operadores de expressão.
Comportamento
$strcasecmp
apenas tem um comportamento bem definido para strings de caracteres ASCII.
Para uma comparação sensível a casos, consulte $cmp
.
Exemplo
Considere uma collection inventory
com os seguintes documentos:
db.inventory.insertMany( [ { "_id" : 1, "item" : "ABC1", quarter: "13Q1", "description" : "product 1" }, { "_id" : 2, "item" : "ABC2", quarter: "13Q4", "description" : "product 2" }, { "_id" : 3, "item" : "XYZ1", quarter: "14Q2", "description" : null } ] )
A operação a seguir usa o operador $strcasecmp
para executar a comparação sem diferenciação de maiúsculas e minúsculas do valor do campo quarter
com a string "13q4"
:
db.inventory.aggregate( [ { $project: { item: 1, comparisonResult: { $strcasecmp: [ "$quarter", "13q4" ] } } } ] )
A operação retorna os seguintes resultados:
{ "_id" : 1, "item" : "ABC1", "comparisonResult" : -1 } { "_id" : 2, "item" : "ABC2", "comparisonResult" : 0 } { "_id" : 3, "item" : "XYZ1", "comparisonResult" : 1 }