MongoDB 查找与使用聚合指定的任何条件匹配的文档

Posted

技术标签:

【中文标题】MongoDB 查找与使用聚合指定的任何条件匹配的文档【英文标题】:MongoDB find documents that matches either any of the conditions specified using aggregation 【发布时间】:2013-04-08 18:14:52 【问题描述】:

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

$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 什么也不返回,它应该返回几个项目。

似乎是什么问题?

【问题讨论】:

【参考方案1】:

我似乎有一个变通办法,我就是这样做的。

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

 '$match' => array(                              
    "status" => "A",                    
    '$or' => array(
            array("id" => "1"),
            array("id" => "2"),
            array("id" => "3")
    )     

【讨论】:

以上是关于MongoDB 查找与使用聚合指定的任何条件匹配的文档的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb 查找与聚合匹配返回一个空数组

$element 匹配或 $unwind 与 AND/Multiple 条件与 mongoDB 聚合

MongoDB 查找与聚合性能

检索与 $group 聚合中的指定条件匹配的计数

mongodb 聚合与 $project 有条件地排除一个字段

MongoDB 聚合与特定字段不匹配