Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
$pop
Nesta página
Definição
$pop
O operador
$pop
remove o primeiro ou último elemento de uma array. Passe$pop
um valor de-1
para remover o primeiro elemento de uma array e1
para remover o último elemento de uma array.O operador
$pop
tem o formato:{ $pop: { <field>: <-1 | 1>, ... } } Para especificar um
<field>
em um documento incorporado ou em uma array, use a notação de ponto.
Comportamento
A partir do MongoDB 5.0, os operadores de atualização processam campos de documento com nomes baseados em cadeia de caracteres em ordem lexicográfica. Os campos com nomes numéricos são processados em ordem numérica. Consulte Atualizar Comportamento de Operadores para detalhes.
A operação $pop
falhará se o <field>
não for uma array.
Se o operador $pop
remover o último item do <field>
, <field>
manterá uma array vazia.
A partir do MongoDB 5.0, mongod
não gera mais um erro quando você usa um operador de atualização como $pop
com uma expressão de operando vazia ( { }
). Uma atualização vazia não resulta em nenhuma alteração e nenhuma entrada no oplog é criada (o que significa que a operação é um no-op).
Exemplos
Remover o primeiro item de uma array
Crie a coleção students
:
db.students.insertOne( { _id: 1, scores: [ 8, 9, 10 ] } )
O exemplo seguinte remove o primeiro elemento, 8, da array scores
:
db.students.updateOne( { _id: 1 }, { $pop: { scores: -1 } } )
O primeiro elemento, 8, foi removido da array scores
:
{ _id: 1, scores: [ 9, 10 ] }
Remover o último item de uma array
Adicione o seguinte documento à coleção students
:
db.students.insertOne( { _id: 10, scores: [ 9, 10 ] } )
O exemplo a seguir remove o último elemento, 10, da array scores
especificando 1
na expressão $pop
:
db.students.updateOne( { _id: 10 }, { $pop: { scores: 1 } } )
O último elemento, 10, foi removido da array scores
:
{ _id: 10, scores: [ 9 ] }