How much can an NSPredicate really do?
I've read the NSPredicate documentation and couldn't wrap my head around it all the way.  Simple predicates I can understand, but now how do I create a predicate for the following situation:

I have an array of Foo objects.  In the Foo class, one of the iVars is an NSMutableArray of Bar objects.  I need to filter the array of Foo objects to get those that have a particular Bar object in its array.  How?

Also, is it any easier (or possible) to find multiple Bar objects at once, or to combine several predicates that each search for a particular Bar?
How much can an NSPredicate really do?
===

I've read the NSPredicate documentation and couldn't wrap my head around it all the way.  Simple predicates I can understand, but now how do I create a predicate for the following situation:

I have an array of Foo objects.  In the Foo class, one of the iVars is an NSMutableArray of Bar objects.  I need to filter the array of Foo objects to get those that have a particular Bar object in its array.  How?

Also, is it any easier (or possible) to find multiple Bar objects at once, or to combine several predicates that each search for a particular Bar?