MongoDB – Operador $pop

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *