que tiene la siguiente mongodb objeto:PHP/MongoDB: actualizar un valor en una matriz
{
"_id": ObjectId("4d0b9c7a8b012fe287547157"),
"messages": {
"0": {
"toUname": "Eamorr3",
"fromUname": "Eamorr2",
"time": 1292606586,
"id": "ABCDZZZ",
"subject": "asdf",
"message": "asdf",
"read": 0 //I want to change this to 1!
},
"1": {
"toUname": "Eamorr1",
"fromUname": "Eamorr3",
"time": 1292606586,
"id": "EFGHZZZ",
"subject": "asdf2",
"message": "asdf2",
"read": 0
}
},
"uname": "Eamorr3"
}
¿Cómo puedo configurar "leer" a 1 donde id = ABCDZZZZ? Estoy usando PHP.
He intentado el siguiente comando:
$driverInboxes->update(array('uname'=>$uname),array('$set'=>array('messages'=>array('id'=>$id,'read'=>'1'))));
Pero cuando hago esto, se produce la sobreescritura y me sale:
{
"_id": ObjectId("4d0b9c7a8b012fe287547157"),
"messages": {
"id": "j7zwr2hzx14d3sucmvp5",
"read": "1"
},
"uname": "Eamorr3"
}
estoy totalmente atascado. Cualquier ayuda muy apreciada.
¿Debo extraer todo el elemento de la matriz, modificar y volver a insertarlo?
Muchas gracias de antemano,
posible duplicado de [actualización de MongoDB matriz anidada] (http://stackoverflow.com/questions/11261521/mongodb-update-nested-array) – user956584
En realidad, ahora mismo es posible: http://stackoverflow.com/questions/ 11261521/mongodb-update-nested-array – user956584