PHP mongo聚合:匹配同一字段上的多个值

PHP mongo聚合:匹配同一字段上的多个值,php,mongodb,aggregation-framework,Php,Mongodb,Aggregation Framework,我需要管道来匹配字段“modelName”等于“movies”或“tv_shows”的文档。我尝试了下面的代码,但它只匹配“电视节目”,而忽略了“电影” $match = array('$match' => array('modelName' => 'movies', 'modelName' => 'tv_shows')); 全文: <?php $connection = new MongoClient; $collection = $connection

我需要管道来匹配字段“modelName”等于“movies”或“tv_shows”的文档。我尝试了下面的代码,但它只匹配“电视节目”,而忽略了“电影”

$match = array('$match' => array('modelName' => 'movies', 'modelName' => 'tv_shows'));
全文:

<?php

   $connection = new MongoClient;
   $collection = $connection -> selectDB("getglue") -> selectCollection("gg");
   MongoCursor::$timeout = -1;

   $match = array('$match' => array('modelName' => 'movies', 'modelName' => 'tv_shows'));
   $group = array('$group' => array('_id' => '$title', 'total' => array('$sum' => 1)));
   $sort = array('$sort' => array('total' => -1));
   $limit = array('$limit' => 7);
   $pipeline = array($match, $group, $sort, $limit);

   $out = $collection -> aggregate($pipeline);

   echo json_encode($out, JSON_PRETTY_PRINT);

?>

使用
$或
运算符:

$match = array('$match' => 
                 array('$or' => array(array("modelName" => "movies"),
                                array("modelName" => "tv_shows"))
                      )
     );
PHP中的
数组
实际上是一个
有序映射
。对于任何键,贴图只能有一个值,最后添加的值将覆盖同一键之前的任何值。因此,在下面,
tv\u显示键的最后一个附加值-
modelName
将作为键的唯一值关联。这就是为什么只有
tv\u节目的
modelname
才会得到结果的原因

'$match' => array('modelName' => 'movies', 'modelName' => 'tv_shows')