Hi Alfred,

Sorry for bringing this old topic back, I am also confused by the number 
showed in the dev_appserver.

I think you meant
1 op for the entity
2x2 = 4 ops for each changed index value (1 remove, 1 add and two 
directions)

My question is, do we need to do checks before calling put() to make sure 
it won't update all fields and their indices?

For example, do we need to do something like below?

s = Sample.all().get()[0]
changed = False

if s.field1 != field1_new_value:
  s.field1 = field1_new_value
  changed = True

if s.field2 != field2_new_value:
  s.field2 = field2_new_value
  changed = True

if s.field3 != field3_new_value:
  s.field3 = field3_new_value
  changed = True

if changed:
  s.put()

Or we can just do below.
s = Sample.all().get()[0]
s.field1 = field1_new_value 
s.field2 = field2_new_value 
s.field3 = field3_new_value 
s.put()

And datastore will check which fields were changed, only update those 
fields and their indices?


On Saturday, September 24, 2011 1:00:44 PM UTC-7, Alfred Fuller wrote:
>
> Yes, the write ops for changing an entity depends on how many indexed 
> properties you change. It is:
> 1 op for the entity
> 2 ops for each changed index value (1 to remove the old value and 1 to add 
> the new)
>
> Since it is not a fixed value and depends on what you actually modify, we 
> do not (can not) show it in the dev_appserver's Datastore Viewer.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-appengine/-/aqIb5sFqOfsJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to