MongoDB – Operador $pull

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 $pull operador es uno de ellos. Este operador se usa para eliminar todas las instancias del valor o el valor que coincide con la condición especificada de la array existente.

Sintaxis:

{ $pull: { <field1>: <value|condition>, <field2>: <value|condition>, ... } }

Aquí, <field> puede especificar con notación de puntos en documentos incrustados/anidados o en una array.

  • En $pull el operador, si especifica la <condición> y la array contiene los documentos incrustados/anidados, entonces este operador aplica la <condición> como si cada elemento de la array fuera un documento en una colección.
  • Si especifica un <valor> en el $pull operador para eliminar es una array, entonces este operador eliminará solo aquellos elementos de la array que coincidan con el <valor> especificado. Aquí, el orden debe ser el mismo.
  • Si especifica un <valor> en el $pull operador para eliminar es un documento, entonces este operador eliminará solo aquellos elementos en la array que tengan exactamente los mismos campos y valores. Aquí, el orden de los campos puede diferir.
  • 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 todos los elementos que son iguales al valor especificado:

En este ejemplo, estamos eliminando los elementos especificados, es decir, [“C#”, “Perl”] del campo de idioma.

db.contributor.update({},
... {$pull: {language: {$in: ["C#", "Perl"]}}},
... {multi: true})

Eliminando todos los elementos que coincidan con la condición especificada:

En este ejemplo, estamos eliminando las calificaciones semestrales que son menores e iguales a ( $lte) 73 del personal.semesterMarkscampo en el documento que coincide con la condición especificada, es decir, el nombre: «Rohit».

db.contributor.update({name: "Rohit"}, 
                      {$pull: {"personal.semesterMarks": {$lte: 75}}})

Eliminación de elementos de la array de documentos:

En este ejemplo, estamos eliminando lenguaje: «Java» y tArtículos: 50 elementos de la array de documentos, es decir, el campo de artículos.

db.contributor.update({}, 
... {$pull: {articles: {language: "Java", tArticles: 50}}}, 
... {multi: true})

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 *