Hi Jordon, Calling .get() and checking if the result is None is more efficient. Calling count executes the query, and calling get executes it again, so doing it that way you're pointlessly duplicating the effort. You're also introducing a potential synchronization/concurrency issue.
-Nick Johnson On Thu, Apr 7, 2011 at 9:49 AM, Jordon Wii <[email protected]> wrote: > Hi guys, > Which of the following is more efficient: > > Using Query.count(1) to test, then using .get() if there is a result: > ------- > q = MyModel.all().filter("field =", value) > count = q.count(1) > > if count: > result = q.get() > do_stuff(result) > else: > create_entity() > -------- > > Or just calling .get(): > ------- > result = MyModel.all().filter("field =", value).get() > > if result: > do_stuff(result) > else: > create_entity() > ----- > > The first one saves resources by not fetching the entity unless it has > to, whereas the second one calls .get() no matter what, but doesn't > use .count() > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > 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. > > -- Nick Johnson, Developer Programs Engineer, App Engine -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. 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.
