Definición
$popEl operador
$popelimina el primer o el último elemento de un array. Pase$popel valor-1para eliminar el primer elemento de un array y1para eliminar el último.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 <field> no es una matriz.
Si el operador $pop elimina el último elemento en <field>, <field> contendrá entonces una matriz vacía.
A partir de MongoDB, 5.0, mongod ya no genera un error cuando se 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 se crea ninguna entrada en el oplog (lo que significa que la operación no tiene efecto).
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 elimina el último elemento, 10, del array scores especificando 1 en la expresión$pop:
db.students.updateOne( { _id: 10 }, { $pop: { scores: 1 } } )
El último elemento, 10, ha sido eliminado del arreglo scores:
{ _id: 10, scores: [ 9 ] }