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

Marco Bizzarri marco.bizzarri at gmail.com
Thu Jun 5 07:45:39 EDT 2008


On Thu, Jun 5, 2008 at 1:28 PM, Janko Hauser <jh at zscout.de> wrote:
>
> Am 05.06.2008 um 12:56 schrieb Marco Bizzarri:
>
>> 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?
>
> Yes, you do the expensive operation just for the test, so there is no
> benefit.
>
> if result:
>   result_len = results.actual_result_count
> else:
>   result_len = 0
>
> return result_len
>
> HTH,
>
> __Janko
>
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
>
>

Hi, Janko.

Thanks for your answer, but there is something I do not understand:

if results:

an empty result from ZCatlog is false in a boolen condition?


Regards
Marco

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


More information about the Zope mailing list