Remover Elementos de um Array
Assim como você pode adicionar elementos, também precisa ser capaz de removê-los. O MongoDB fornece vários operadores para esse fim. Nesta etapa, você aprenderá a usar $pull para remover elementos por valor e $pop para removê-los por posição.
Para remover um elemento específico de um array com base em seu valor, use o operador $pull. Vamos remover "Physics" da lista de cursos de Alice.
db.students.updateOne(
{ name: "Alice Johnson" },
{ $pull: { courses: "Physics" } }
)
Este comando encontra o documento de Alice e remove todas as ocorrências de "Physics" de seu array courses. Verifique o resultado:
db.students.find({ name: "Alice Johnson" }).pretty()
A saída mostra que "Physics" não está mais no array.
[
{
_id: ObjectId("..."),
name: 'Alice Johnson',
age: 22,
courses: [ 'Mathematics', 'Computer Science', 'Data Science' ]
}
]
Para remover múltiplos elementos que correspondem a valores em uma lista, você pode usar o operador $pullAll. Vamos remover "Chess Club" e "Debate Team" das atividades de Bob.
db.students.updateOne(
{ name: "Bob Smith" },
{ $pullAll: { activities: ["Chess Club", "Debate Team"] } }
)
Verifique a atualização do documento de Bob:
db.students.find({ name: "Bob Smith" }).pretty()
A saída confirma a remoção das atividades especificadas.
[
{
_id: ObjectId("..."),
name: 'Bob Smith',
grades: [ 95, 87, 92 ],
activities: [ 'Robotics Club', 'Swimming Team' ]
}
]
Se você precisar remover um elemento do início ou do fim de um array, pode usar o operador $pop. Use 1 para remover o último elemento e -1 para remover o primeiro. Vamos remover o último curso da lista de Alice.
db.students.updateOne(
{ name: "Alice Johnson" },
{ $pop: { courses: 1 } }
)
Vamos ver o estado final dos cursos de Alice:
db.students.find({ name: "Alice Johnson" }).pretty()
A saída mostra que o último elemento, "Data Science", foi removido.
[
{
_id: ObjectId("..."),
name: 'Alice Johnson',
age: 22,
courses: [ 'Mathematics', 'Computer Science' ]
}
]