$pop (Remover Primeiro ou Último)
Última atualização: 2026-10-09
$pop (Remover Primeiro ou Último)
$pop remove o primeiro (-1) ou o último (1) elemento de um array. `{ $pop: { queue: -1 } }` remove da frente; `{ $pop: { queue: 1 } }` remove do fim. Arrays vazios não são afetados. Ele remove apenas por posição — para remover por valor use $pull. Útil para filas, pilhas e listas de mensagens recentes.
| Categoria | Atualização de Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $pop: { <campo de array>: <-1 ou 1> } }
⚙️ Parâmetros
| campo de array | O campo de matriz do qual remover. |
|---|---|
| direção | -1 remove o primeiro elemento, 1 remove o último. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $pop: remove a frente da fila
// -1 frente, 1 fundo
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: -1 } }
)
// Remove o fundo (pop de pilha)
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: 1 } }
)
Saída:
// queue perde um elemento, da frente ou do fundo
📌 Notas
- Aceita apenas -1 ou 1 como direção
- Para remover por valor use $pull, não $pop
- Sem efeito em arrays vazios
🏷️ Tags Relacionados
💡 Casos Relacionados
Consultas a matrizes e documentos aninhados
Atualização do documento: Uma explicação detalhada sobre `updateOne` e `updateMany`
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
Q$pop pode remover um valor específico?
ANão, ele remove apenas por posição; use $pull para remover por valor.
Q$pop aceita apenas -1 ou 1?
ASim, outros valores são inválidos.
Q$pop gera erro em um array vazio?
ANão, ele não tem efeito em arrays vazios.