Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

$substr (agregação)

$substr

Obsoleto 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 Expressões.

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:

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 $substr para separar o valor quarter em um 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" }

Voltar

$strLenCP

Nesta página