聚合命令的PHP MongoDB管理器异常:";无法从服务器解码文档。”;

聚合命令的PHP MongoDB管理器异常:";无法从服务器解码文档。”;,php,mongodb,aggregation-framework,Php,Mongodb,Aggregation Framework,我的样本收集: { "_id" : ObjectId("58dbc09b19d7a17e44201982"), "process_id" : "2-1490770330177", "contacts" : [ { "party_id" : 6636, "completed" : true, "kind" : 1 }, { "par

我的样本收集:

{
    "_id" : ObjectId("58dbc09b19d7a17e44201982"),
    "process_id" : "2-1490770330177",
    "contacts" : [
        {
            "party_id" : 6636,
            "completed" : true,
            "kind" : 1
        },
        {
            "party_id" : 139611,
            "completed" : true,
            "kind" : 1
        },
        {
            "party_id" : 32609,
            "completed" : true,
            "kind" : 1
        },

        {
            "party_id" : 49520,
            "completed" : false,
            "kind" : 1
        },
        {
            "party_id" : 204031,
            "completed" : false,
            "kind" : 1
        },
        {
            "party_id" : 204379,
            "completed" : false,
            "kind" : 1
        }
    ],
    "tags" : [
        1277
    ]
}
当我通过以下查询使用RoboMongo测试此文档时:

db.getCollection('BatchTag').aggregate(
                        {'$match':{"process_id":'2-1490770330177'}},
                        {'$unwind':'$contacts'},
                        {'$match':{'contacts.completed':false}},
                        {'$group':{_id:'$_id','contacts':{'$push':'$contacts'}}}
    )
我收到了这个结果

{
    "_id" : ObjectId("58dbc09b19d7a17e44201982"),
    "contacts" : [
        {
            "party_id" : 49520,
            "completed" : false,
            "kind" : 1
        },
        {
            "party_id" : 204031,
            "completed" : false,
            "kind" : 1
        },
        {
            "party_id" : 204379,
            "completed" : false,
            "kind" : 1
        }
    ]
}
当我在PHP上执行一些查询时。我收到“无法解码服务器上的文档。”异常。 我的PHP代码如下:

            $command = new Command([
                "aggregate"=>"BatchTag",
                "pipeline" => [
                    ['$match'=>["process_id"=>$processUID]],
                    ['$unwind'=>'$contacts'],
                    ['$match'=>['contacts.completed'=>false]],
                    ['$group'=>['_id'=>'$_id','contacts'=>['$push'=>'$contacts']]]
                ]
            ]);
            $rows = $this->getMongoManager()->executeCommand($this->container->getParameter("mongodb_db_name").".BatchTag",$command)->toArray();

我不明白,怎么了

您也正在将集合名称传递给

您应该只传递db name作为
命令
obj已经有了集合名

试试像这样的东西

$rows = $this->getMongoManager()->executeCommand($this->container->getParameter("mongodb_db_name"),$command)->toArray();