$split (Dividir String)
Última atualização: 2026-10-09
$split (Dividir String)
$split divide uma string em um array de substrings por um delimitador — essencial para textos no estilo CSV, listas de tags e caminhos. O delimitador deve ser uma string não vazia; um delimitador vazio divide por code points individuais. Combina bem com operadores de array como $arrayElemAt e $size. Se qualquer argumento for null ou estiver ausente, o resultado é null.
| Categoria | String |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $split: [ <expressão de string>, <delimitador> ] }
⚙️ Parâmetros
| string | Obrigatório; a string ou expressão a dividir. |
|---|---|
| delimitador | Obrigatório, não vazio; uma string vazia divide por pontos de código. |
Retorno:Uma matriz de substrings; null se qualquer argumento for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $split: dividir tags separadas por vírgula em um array
db.products.aggregate([
{ $project: { tags: { $split: [ '$tagStr', ',' ] } } }
])
Saída:
{ "_id": 1, "tags": [ "sale", "new", "hot" ] }
{ "_id": 2, "tags": [ "featured" ] }
📌 Notas
- Delimitador vazio divide por code points, um elemento por caractere
- Se o delimitador nunca ocorrer, o array contém a string original
- Argumentos null/ausentes resultam em null
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO delimitador pode ser uma string vazia?
ASim — uma string vazia divide por code points individuais.
QComo obter o primeiro elemento após a divisão?
AUse $arrayElemAt com índice 0.
QE se o delimitador nunca ocorrer?
AO array contém apenas a string original.