$[] (Atualizar Todos os Elementos do Array)
Última atualização: 2026-10-09
$[] (Atualizar Todos os Elementos do Array)
$[] é o operador posicional que atualiza todos os elementos de um array. `{ $set: { 'grades.$[]': 90 } }` define todas as notas como 90. Combinado com arrayFilters, atualiza apenas os elementos correspondentes; sem eles, atualiza todos. $[] pertence apenas a instruções de update — consultas usam $elemMatch.
| Categoria | Modificador de Atualização |
|---|---|
| Versão do MongoDB | 3.6+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <operador de atualização>: { '<campo de array>.$[]': <valor> } }
⚙️ Parâmetros
| campo de array | O campo de matriz a atualizar por completo. |
|---|---|
| valor | O valor aplicado a cada elemento. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $[]: define todas as notas como 90
db.students.updateOne(
{ _id: 1 },
{ $set: { 'grades.$[]': 90 } }
)
// Arrays aninhados também usam $[]
// Marca cada nível
db.students.updateOne(
{ _id: 1 },
{ $set: { 'scores.$[].math': 100 } }
)
Saída:
// Todas as notas viram 90; o segundo exemplo define o math de cada score como 100
📌 Notas
- Atualiza todos os elementos quando nenhum arrayFilters é fornecido
- Atualizações condicionais usam $[identificador] com arrayFilters, não $[]
- Escreva $[] por nível para arrays aninhados
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $[] e $?
A$ atualiza o primeiro elemento correspondido; $[] atualiza todos os elementos.
Q$[] pode funcionar com condições?
ACondições exigem $[identificador] com arrayFilters; $[] atualiza tudo incondicionalmente.
Q$[] pode ser usado em consultas?
ANão, ele é apenas para instruções de update.