sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB 2.2 - Actualización del documento anidado de matriz

No hay forma de hacer esto actualmente usando una operación de actualización regular por las razones que anotaste.

La única solución que puede usar en este momento es agregar versiones a su documento y usar el bloqueo optimista leyendo el documento, encontrando los elementos apropiados para modificar en su aplicación, cambiando sus valores y luego usando una update eso incluye la versión en el documento leído (de modo que si otro hilo actualizó el documento entre su consulta y su actualización, no sobrescribiría los cambios sino que tendría que volver a cargar el documento y volver a intentarlo).

La estrategia de creación de versiones no tendría que basarse en todo el documento, puede crear versiones de los elementos de matriz de primer nivel y luego podría actualizar solo la sub-matriz que le preocupa (a través de una actualización con $set).