$slice (Obter Subconjunto do Array)

Última atualização: 2026-10-09

$slice (Obter Subconjunto do Array)

$slice extrai uma parte de um array. Suporta duas formas: a forma de dois argumentos pega os primeiros n elementos (ou os últimos n quando n é negativo), e a forma de três argumentos pula um número de elementos e depois pega uma contagem especificada. Usos típicos: paginar comentários, pegar os pedidos mais recentes ou limitar o número de tags retornadas. Retorna um array novo sem modificar o original; um argumento null resulta em null. É a contraparte em array de $substr para strings.

CategoriaArray
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $slice: [ <array>, <contagem> ] } ou { $slice: [ <array>, <pular>, <contagem> ] }

⚙️ Parâmetros

arrayA matriz a fatiar.
quantidadeO número de elementos a obter; quando negativo na forma de dois argumentos, obtém os últimos n a partir do fim.
pularOpcional; elementos a ignorar primeiro na forma de três argumentos; negativo começa a contar a partir do fim.

Retorno:A submatriz extraída; null se um argumento for null

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $slice: pegar as primeiras 3 tags
db.posts.aggregate([
  { $project: {
      topTags: { $slice: ['$tags', 3] }
  } }
])

Saída:

{ '_id': 1, 'topTags': [ 'mongo', 'db', 'nosql' ] }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QComo pego os últimos elementos com $slice?
AUse uma contagem negativa, ex.: { $slice: ['$arr', -3] } para os últimos 3.
QO $slice suporta paginação?
ASim — { $slice: ['$arr', 10, 10] } pula 10 e pega 10.
QFatiar além do comprimento gera erro?
ANão — retorna os elementos que existem, sem preencher com null.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%