$strcasecmp (Comparação sem Diferenciar Maiúsculas/Minúsculas)
Última atualização: 2026-10-09
$strcasecmp (Comparação sem Diferenciar Maiúsculas/Minúsculas)
$strcasecmp compara duas strings sem diferenciar maiúsculas de minúsculas e retorna -1, 0 ou 1 — útil para ordenação, agrupamento ou lógica condicional. Aceita apenas strings; outros tipos geram erro. Observe que compara pela ordem dos code points, não por colação de linguagem natural: o chinês é ordenado por code points Unicode, o que pode diferir da ordem por pinyin ou de dicionário. Qualquer argumento null resulta em null.
| Categoria | String |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $strcasecmp: [ <expressão de string1>, <expressão de string2> ] }
⚙️ Parâmetros
| string 1 | Obrigatório; a primeira expressão de string. |
|---|---|
| string 2 | Obrigatório; a segunda expressão de string. |
Retorno:Resultado da comparação: -1, 0 ou 1; null se qualquer argumento for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $strcasecmp: comparar com alice ignorando maiúsculas/minúsculas
db.users.aggregate([
{ $project: { cmp: { $strcasecmp: [ '$name', 'alice' ] } } }
])
Saída:
{ "_id": 1, "cmp": 0 }
{ "_id": 2, "cmp": 1 }
📌 Notas
- Sem diferenciar maiúsculas/minúsculas: 'ALICE' versus 'alice' resulta em 0
- Entrada que não é string gera erro — converta com $toString antes
- O sinal corresponde à direção da ordenação, então funciona como auxiliar de ordenação
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que o 0 significa?
AAs duas strings são iguais ignorando maiúsculas/minúsculas.
QFunciona para chinês?
ASim, mas compara code points, não a ordem por pinyin ou de dicionário.
QQual é a diferença para $cmp?
A$cmp compara diferenciando maiúsculas/minúsculas em ordem binária; $strcasecmp ignora maiúsculas/minúsculas.