[Zope] Counting the elements of a result in a ZCatalog

Marco Bizzarri marco.bizzarri at gmail.com
Thu Jun 5 06:56:21 EDT 2008


Hi all.

I need to query a ZCatalog, and I would like to know how many elements
are there. I'm working from inside a python product, so, I could do
something like:

results = Catalog(criteria)
return len(results)


But this creates a number of objects which are completly useless for
me. After all, I'm interested in just the length, not in the objects.

I could do something like this:

results = Catalog(criteria, sort_limit=1)
return results.actual_result_count

since I should have a LazyMap, which does not (should not) actually
load all the objects (at least, I hope so).

This does not work if I have no result. So, what I should do would be:

results = Catalog(criteria, sort_limit=1)
if len(results) == 0:
    return 0
return results.actual_result_count

Am I missing something?

Regards
Marco

-- 
Marco Bizzarri
http://iliveinpisa.blogspot.com/


More information about the Zope mailing list