2

嘿伙计们,我想通过$or -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 ) ) ) );

但这不起作用......当我只在一个索引中搜索时,它工作得非常好......示例:

$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 回答