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

¿Cómo actualizo campos de documentos en mongo db usando el controlador java?

Me pregunto si el controlador es lo suficientemente inteligente como para actualizar solo el subconjunto más pequeño de cambios o si solo está actualizando ciegamente todo.

No, si usa el método de actualización "normal", todo el objeto se enviará por cable. Sospecho que el servidor de la base de datos en sí mismo será lo suficientemente inteligente como para actualizar solo los índices necesarios (y no los que no cambiaron), si es posible (es decir, el objeto podría actualizarse en su lugar y no tuvo que moverse porque creció demasiado)

Lo que puede hacer es usar las funciones de "modificador de actualización atómica". La documentación de Java es un poco liviana, pero dado que el controlador solo transmite el JSON, las cosas de los tutoriales que no son de Java deberían funcionar, por ejemplo:

shapes.update((DBObject)JSON.parse(    "{ 'foo' : 'bar'}"),  
    (DBObject) JSON.parse(          "{ '$set' : { 'foo': 'bat'}}")   );