Definición
$popEl operador
$popremueve el primer o el último elemento de un arreglo. Pasa$popun valor de-1para remover el primer elemento de un arreglo y1para remover el último elemento de un arreglo.El operador
$poptiene la forma:{ $pop: { <field>: <-1 | 1>, ... } } Para especificar un
<field>en un documento incrustado o en un arreglo, utiliza notación de puntos.
Comportamiento
A partir de MongoDB 5.0, los operadores de actualización procesan los campos de documentos con nombres basados en cadenas en orden lexicográfico. Los campos con nombres numéricos se procesan en orden numérico. Consulta Comportamiento del operador de actualización para obtener más información.
La operación $pop falla si el <field> no es un arreglo.
Si el $pop operador remueve el último elemento en el <field>, el <field> contendrá entonces un arreglo vacío.
A partir de MongoDB 5.0, mongod ya no genera un error cuando utiliza un operador de actualización como $pop con una expresión de operando vacía ( { } ). Una actualización vacía no produce cambios y no genera ninguna entrada en el oplog (lo que significa que la operación es una “no-op").
Ejemplos
Remover el primer elemento de un arreglo
Crear la colección students:
db.students.insertOne( { _id: 1, scores: [ 8, 9, 10 ] } )
El siguiente ejemplo remueve el primer elemento, 8, del arreglo scores:
db.students.updateOne( { _id: 1 }, { $pop: { scores: -1 } } )
Se eliminó el primer elemento, 8, del arreglo scores:
{ _id: 1, scores: [ 9, 10 ] }
Eliminar el último elemento de un arreglo
Añada el siguiente documento a la colección students:
db.students.insertOne( { _id: 10, scores: [ 9, 10 ] } )
El siguiente ejemplo remueve el último elemento, 10, del arreglo scores especificando 1 en la expresión $pop:
db.students.updateOne( { _id: 10 }, { $pop: { scores: 1 } } )
El último elemento, 10, se ha eliminado de la matriz scores:
{ _id: 10, scores: [ 9 ] }