2

$または-Operatorでドキュメントを検索したいのですが...最初に3つのドキュメントを挿入します。

$aDocument = array(
    'id' => 1,
    'name' => 'WinZIP',
    'shorttext' => 'ZIP / UNZIP Programm' );

$oCollection->insert( $aDocument );

$aDocument = array(
    'id' => 2,
    'name' => 'WinRar',
    'shorttext' => 'ZIP / UNZIP Programm mit RAR-Unterstützung' );

$oCollection->insert( $aDocument );

$aDocument = array(
    'id' => 3,
    'name' => '7zip',
    'shorttext' => 'ZIP / UNZIP Programm mit RAR- und 7z-Unterstützung' );

$oCollection->insert( $aDocument );

次に、クエリの正規表現を作成しています。

$oSearchRegex = new MongoRegex( "/zip/i" );

ここで、「name」または「shorttext」で文字列「zip」を検索したいと思います...次のようになります。

$oCursor = $oCollection->find( array( '$or' => array( array( 'name' => $oSearchRegex ), array( 'shorttext' => $oSearchRegex ) ) ) );

しかし、これは機能しません... 1つのインデックスを検索するだけで、非常にうまく機能します。例:

$oCursor = $oCollection->find( array( 'name' => $oSearchRegex ) );

解決策はありますか?

4

1 に答える 1

1

あなたが言ったように、あなたは1.4.4 MongoDBバージョンを持っていますがそれ"or" operator was included only from version 1.7.x以降

于 2012-10-17T19:01:51.307 に答える