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.semesterMarks
campo 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