I have been going around and around with this this morning trying to
sort out the correct syntax for an $or containing multiple $regex

So in RockMongo I use this:

{
"$or" : [
        {"ingredient" : {"$regex" : /^aru/i}},
        {"ingredient" : {"$regex" : /^bro/i}},
        ]
}

It returns two items from my DB

However I cannot figure out the correct syntax to use to accomplish
the same thing using Cake's MongoDB datasource. The method below only
returns an item that matches on the last item in the $conditions
array.

    public function test()
    {

         //'Ingredient.ingredient'
        $conditions = array();
        $conditions[] = array('Ingredient.ingredient' =>
array('$regex' => new MongoRegex('/^arug/i')));
        $conditions[] = array('Ingredient.ingredient' =>
array('$regex' => new MongoRegex('/^bro/i')));

        $query = array(
            'limit' => 15,
            'order' => array(
                'Ingredient.ingredient' => 'asc',
                'Ingredient.type' => 'asc'),
            'conditions' => array('$or' => $conditions)
        );

        var_dump($query);

        $ingredients = $this->Ingredient->find('all', $query);
        var_dump($ingredients);
        exit();
    }


Any help would be appreciated.

Thanks

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to