聚合命令的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();