Definición
$popEl operador
$popelimina el primer o el último elemento de una matriz. Pase$popcomo valor-1para eliminar el primer elemento de una matriz y1para eliminar el último elemento.El operador
$poptiene la forma:{ $pop: { <field>: <-1 | 1>, ... } } Para especificar un
<field>en un documento incrustado o en una matriz, utilice 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 falla $pop si <field> no es una matriz.
Si el operador elimina el último $pop elemento <field> del, el <field> contendrá una matriz vacía.
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
Eliminar el primer elemento de una matriz
Crear la colección students:
db.students.insertOne( { _id: 1, scores: [ 8, 9, 10 ] } )
El siguiente ejemplo elimina el primer elemento,, 8 de la scores matriz:
db.students.updateOne( { _id: 1 }, { $pop: { scores: -1 } } )
El primer elemento, 8, se ha eliminado de la matriz scores:
{ _id: 1, scores: [ 9, 10 ] }
Eliminar el último elemento de una matriz
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 ] }