Você deseja usar a
update
comando em sua coleção da seguinte forma (exemplo):db.collection.update(
{ "my_array.title" : "title_one" },
{ $inc : { "my_array.$.click_number" : 1 } }
);
O que acabou de acontecer?
No primeiro parâmetro de
update
você define uma query
para corresponder aos documentos que você deseja atualizar. Procuramos uma propriedade chamada title
dentro do array chamado my_array
. Você pode combinar com body
ou email
é claro, modificando a notação de ponto para:"my_array.email"
. O segundo parâmetro define a atualização, a modificação a ser aplicada. Temos um
$inc
operador para incrementar campos, que usamos nesta instrução. A query
seleciona um documento com o elemento de matriz correspondente. Você pode alcançar este item de matriz correspondente com o $
notação. O "my_array.$"
seleciona o elemento de matriz correspondente, que tem um title
, email
e body
. Se você tentar dar valor a um campo não existente, o MongoDB fará isso por você. Se o campo não existir, $inc
define o campo para o valor especificado. O $inc
operador aceita valores incrementais positivos e negativos. Saiba mais sobre o comando de atualização.
Outro exemplo:
db.collection.update(
{ _id : "john", "my_array.email" : "email" },
{ $inc : { "my_array.$.click_number" : 1 } }
);