$slice (Projetar Subconjunto de Array)

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

$slice (Projetar Subconjunto de Array)

$slice em uma projeção retorna um subconjunto de um campo de array sem modificar o documento. `{ tags: { $slice: 2 } }` retorna os 2 primeiros elementos; `{ tags: { $slice: [1, 3] } }` pula 1 e pega 3. Comum em páginas de listagem que mostram apenas os primeiros comentários ou anexos. Ele compartilha o nome com o modificador de atualização $slice, mas serve a um propósito diferente.

CategoriaProjeção
Versão do MongoDB2.4+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ <campo de array>: { $slice: <quantidade> } } ou { <campo de array>: { $slice: [ <pular>, <quantidade> ] } }

⚙️ Parâmetros

campo de arrayO campo de matriz a fatiar.
quantidade ou arrayUma contagem para os primeiros N, ou [skip, count] para pular e depois obter.

Retorno:Documentos projetados com o subconjunto de matriz solicitado

▶ Exemplo

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

// $slice: retorna apenas as 3 primeiras tags
db.articles.find(
  { _id: 1 },
  { title: 1, tags: { $slice: 3 } }
)

// Pula 1, pega 2
db.articles.find(
  { _id: 1 },
  { comments: { $slice: [1, 2] } }
)

Saída:

// Retorna o título e as 3 primeiras tags; a segunda consulta pula 1 comentário e pega 2

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO $slice de projeção é o mesmo que o $slice de atualização?
ANão. O $slice de projeção molda o resultado; o $slice de atualização limita o array após $push.
QComo pego os últimos elementos de um array?
AUse um negativo: { tags: { $slice: -3 } } pega os últimos 3.
Q$slice pode combinar com outras projeções?
ASim, desde que não entrem em conflito.
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%