Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$substr (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$substr

Preterido desde a versão 3.4: $substr agora é um alias para $substrBytes.

Retorna uma substring de uma string, começando em uma posição de índice especificada e incluindo o número especificado de caracteres. O índice é baseado em zero.

$substr tem a seguinte sintaxe:

{ $substr: [ <string>, <start>, <length> ] }

Os argumentos podem ser qualquer expressão válida, desde que o primeiro argumento produza uma string e o segundo e terceiro argumentos produzam números inteiros. Para mais informações sobre expressões, consulte Operadores de Expressão.

Se <start> for um número negativo, $substr retornará uma string vazia "".

Se <length> for um número negativo, $substr retornará uma substring que começa no índice especificado e inclui o restante da string.

$substr apenas tem um comportamento bem definido para strings de caracteres ASCII.

Considere uma coleção inventory com os seguintes documentos:

{ "_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 $substr para separar o valor quarter em yearSubstring e quarterSubstring:

db.inventory.aggregate(
[
{
$project:
{
item: 1,
yearSubstring: { $substr: [ "$quarter", 0, 2 ] },
quarterSubtring: { $substr: [ "$quarter", 2, -1 ] }
}
}
]
)

A operação retorna os seguintes resultados:

{ "_id" : 1, "item" : "ABC1", "yearSubstring" : "13", "quarterSubtring" : "Q1" }
{ "_id" : 2, "item" : "ABC2", "yearSubstring" : "13", "quarterSubtring" : "Q4" }
{ "_id" : 3, "item" : "XYZ1", "yearSubstring" : "14", "quarterSubtring" : "Q2" }
← $strLenCP (agregação)