Ik vraag me af of het stuurprogramma slim genoeg is om alleen de kleinste subset van wijzigingen bij te werken of dat het gewoon blindelings het hele ding bijwerkt?
Nee, als je de "normale" update-methode gebruikt, wordt het hele object over de draad verzonden. Ik vermoed dat de databaseserver zelf slim genoeg zal zijn om alleen de noodzakelijke indexen bij te werken (en niet degene die niet zijn gewijzigd), indien mogelijk (d.w.z. het object kon op zijn plaats worden bijgewerkt en hoefde niet te worden verplaatst omdat het te veel groeide)
Wat u kunt doen, is de functies "atomic update modifier" gebruiken. De Java-documentatie is een beetje licht over hen, maar aangezien het stuurprogramma alleen de JSON verzendt, zouden de dingen uit de niet-Java-tutorials moeten werken, bijvoorbeeld:
shapes.update((DBObject)JSON.parse( "{ 'foo' : 'bar'}"),
(DBObject) JSON.parse( "{ '$set' : { 'foo': 'bat'}}") );