1

我正在使用聚合在数据表中创建文本搜索功能。

$ops = array(      
  array(
    '$match' => array(                              
        "status" => "A",                    
        '$or' => array(
                array("team" => "Golz"),
                array("rank" => "freshmen")
        )                   
  )
)     

翻译成mysql,它是“select * from dbname where status='A' AND (team='Golz' OR rank='freshmen')。

DB什么也不返回,它应该返回几个项目。

什么似乎是问题?

4

1 回答 1

0

我似乎有一个解决方法,这就是我的做法。

在返回游标 obj 的 find() 中使用 $or。使用游标 obj,我将 id 传递给匹配聚合的 or 内部。所以在我的匹配数组中我有这样的东西:

 '$match' => array(                              
    "status" => "A",                    
    '$or' => array(
            array("id" => "1"),
            array("id" => "2"),
            array("id" => "3")
    )     
于 2013-04-17T03:45:21.697 回答