Me gustaría realizar varias actualizaciones en el campo de "valor" de subdocumentos si los campos "oid" y "instancia" coinciden. puedo hacerlo uno subdocumento a la vez, pero hay una manera de hacerlo por múltiplesSubdocumento de actualización múltiple
- Esto funciona para uno -
db.myTable.update({ "data" : { "$elemMatch" : { "oid" : "1.3.6.1.4.1.111.3.10.2.5.35.3",
"instance" : "0" } },
"$atomic" : "true" },
{ $set: { "data.$.value": "change good" }},
false,
true);
"_id" : 483,
"data" : [{
"oid" : "1.3.6.1.4.1.111.3.10.2.5.35.3",
"instance" : "0",
"value" : "0"
}, {
"oid" : "1.3.6.1.4.1.111.3.999.2.5.2",
"instance" : "0",
"value" : "aaa"
}, {
"oid" : "1.3.6.1.4.1.111.3.30.5.1.1",
"instance" : "0",
"value" : "BBB"
}]}
Quizás podría utilizar el operador '$ or' aquí. –
posible duplicado de [Cambiar todos mis documentos valor de documento anidado] (http://stackoverflow.com/questions/10662779/change-all-my-documents-nested-document-value) – istepaniuk