[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