As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$[<identifier>]
O operador posicional $[<identifier>] filtrado atualiza todos os elementos da matriz que correspondem às condições de filtro especificadas. Ele é usado com a arrayFilters opção de atualizar seletivamente os elementos da matriz.
Parâmetros
-
field.$[identifier]: o campo de matriz com o operador posicional filtrado. -
arrayFilters: uma matriz de condições de filtro que determinam quais elementos atualizar.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra o uso do $[<identifier>] operador para atualizar elementos específicos da matriz com base em uma condição.
Crie documentos de amostra
db.students.insertOne({ _id: 1, name: "Alice", grades: [ { subject: "Math", score: 85 }, { subject: "Science", score: 92 }, { subject: "History", score: 78 } ] });
Exemplo de consulta
db.students.updateOne( { _id: 1 }, { $inc: { "grades.$[elem].score": 5 } }, { arrayFilters: [{ "elem.score": { $gte: 80 } }] } );
Saída
{
"_id" : 1,
"name" : "Alice",
"grades" : [
{ "subject" : "Math", "score" : 90 },
{ "subject" : "Science", "score" : 97 },
{ "subject" : "History", "score" : 78 }
]
}
Exemplos de código
Para ver um exemplo de código para usar o $[<identifier>] operador, escolha a guia do idioma que você deseja usar: