Definição
$substrDescontinuado desde a versão 3.4:
$substragora é 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.
$substrtem 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.
Comportamento
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.
Exemplo
O exemplo a seguir usa a coleção movies do conjunto de dados de amostra sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação, consulte Carregar o conjunto de dados de amostra.
Esta operação de agregação utiliza o operador $substr para separar o valor title em um titleStart e um titleRest. A segunda expressão usa um <length> negativo para retornar os caracteres do índice 3 para o final da string:
db.movies.aggregate( [ { $match: { runtime: { $gt: 1000 } } }, { $project: { _id: 0, title: 1, titleStart: { $substr: [ "$title", 0, 3 ] }, titleRest: { $substr: [ "$title", 3, -1 ] } } } ] )
[ { title: 'Centennial', titleStart: 'Cen', titleRest: 'tennial' }, { title: 'Baseball', titleStart: 'Bas', titleRest: 'eball' } ]