2011-08-17 12 views
5

私はMongoDBのにSQLからMongoDBへ?

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

を実装したい、と私は

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

を試してみましたが、これは動作しません。

このSQLをmongoDBに実装する適切な方法は何ですか?

答えて

3

はここだからあなたの条件が

のように見えるかもしれない用語

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

"が含まれている"、私は大文字と小文字を区別しないを構築する方法を説明します。このリンクを読みます

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

条件配列が間違っている場合は、通常、私はDoctrine ODM

+0

'writer' => array( 'name' => "$ query_string")の代わりに 'writer.name'のようなクエリを実行できるかどうかわかりませんでした。かなり印象的! – InspiredJW

+0

@JeongWooChang下部にある「配列」という節を参照 - http://php.net/manual/en/mongo.queries.php – Phil

+0

ありがとうございました:) – InspiredJW

関連する問題