SQL в MongoDB? - PullRequest
       3

SQL в MongoDB?

5 голосов
/ 17 августа 2011

Мне нравится реализовывать

"SELECT * FROM TABLE_NAME 
    WHERE 
         name like '$query_string' or 
         title like '%$query_string%' or 
         tags like '%$query_string%'"

на mongoDB, и я попытался

$condition = array('$or' => 
   array('writer'=> array('name'=>"$query_string"), 
          'title'=> new MongoRegex("/$query_string/"),  
          'tags' => new MongoRegex("/$query_string/") ));

и это не работает.

Как правильно реализовать этот SQL в mongoDB?

1 Ответ

3 голосов
/ 17 августа 2011

Вот как я строю без учета регистра, "содержит" термин

$containsTerm = new MongoRegex(sprintf('/%s/i', preg_quote($term, '/')));

Так что ваше состояние может выглядеть как

$condition = array('$or' => array(
    'writer.name' => $term,
    'title'       => $containsTerm,
    'tags'        => $containsTerm
));

Извинения, если массив условий неверен, я обычно использую Doctrine ODM

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...