SQL到MongoDB?

Ins*_*dJW 5 php mongodb

我喜欢实施

"SELECT * FROM TABLE_NAME 
    WHERE 
         name like '$query_string' or 
         title like '%$query_string%' or 
         tags like '%$query_string%'"
Run Code Online (Sandbox Code Playgroud)

到mongoDB,我试过了

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

这不起作用.

将SQL实现到mongoDB的正确方法是什么?

Phi*_*hil 3

这是我构建不区分大小写的“包含”术语的方法

$containsTerm = new MongoRegex(sprintf('/%s/i', preg_quote($term, '/')));
Run Code Online (Sandbox Code Playgroud)

所以你的情况可能看起来像

$condition = array('$or' => array(
    'writer.name' => $term,
    'title'       => $containsTerm,
    'tags'        => $containsTerm
));
Run Code Online (Sandbox Code Playgroud)

如果条件数组错误,抱歉,我通常使用Doctrine ODM