MongoDB proporciona diferentes tipos de operadores de actualización de array para actualizar los valores de los campos de array en los documentos y el operador $pop es uno de ellos. Este operador se usa para eliminar el primer o el último elemento de la array.
Sintaxis:
{ $pop: { <field>: <-1 | 1>, ... } }
Aquí, <field> puede especificar con notación de puntos en documentos incrustados/anidados o en una array.
- Si pasa el valor -1 en el operador $pop, eliminará el primer elemento de la array.
- Si pasa 1 valor en el operador $pop, eliminará el último elemento de la array.
- Si el <campo> no es una array, este operador fallará.
- Si el operador $pop eliminará el último elemento del campo especificado, entonces el campo contiene una array vacía.
- Puede usar este operador con métodos como update(), findAndModify(), etc., según sus requisitos.
En los siguientes ejemplos, estamos trabajando con:
Base de datos: GeeksforGeeks
Colección: colaborador
Documento: dos documentos que contienen los detalles del colaborador en forma de pares de valor de campo.
Eliminando el primer elemento de la array:
En este ejemplo, estamos eliminando el primer elemento del campo de idioma en el documento que coincide con la condición especificada, es decir, el nombre: «Rohit», estableciendo el valor del operador $pop en -1.
db.contributor.update({name: "Rohit"}, {$pop: { language: -1}})
Eliminando el último elemento de la array:
En este ejemplo, estamos eliminando el último elemento del campo de idioma en el documento que coincide con la condición especificada, es decir, el nombre: «Sumit», estableciendo el valor del operador $pop en 1.
db.contributor.update({name: "Sumit"}, {$pop: {language: 1}})
Eliminación del primer elemento del documento incrustado/anidado:
En este ejemplo, estamos eliminando el último elemento del campo personal.semesterMarks en el documento anidado estableciendo el valor del operador $pop en -1.
db.contributor.update({name: "Sumit"}, {$pop: {"personal.semesterMarks": -1}})
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA