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 查找与使用聚合指定的任何条件匹配的文档的主要内容,如果未能解决你的问题,请参考以下文章
$element 匹配或 $unwind 与 AND/Multiple 条件与 mongoDB 聚合