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