mongodb php多组舞台

时间:2016-08-07 18:35:49

标签: php mongodb

我想使用php执行以下mongodb脚本:

db.getCollection('play_history').aggregate(
[ { $match : { At : {$gte : 1470307490, $lt : 1470307497649}, moneyType:1  } } ,
 {
   $group:
     {
       _id: { gameType: "$gameType", sessionId: "$sessionId"},           
     }
 },
 {
   $group:
     {
       _id: "$_id.gameType",
       count: { $sum: 1} 
     }
 }
])

下面是php剪辑代码:

$match = [ 'moneyType' => 1, 
        'At' => ['$gt' => 12, '$lt' => 1470307497649]];

$command = new MongoDB\Driver\Command([
    'aggregate' => 'play_history',
    'pipeline' => [
        ['$match' => $match],
        ['$group' => 
            ['_id' => ["gameType" => '$gameType', "sessionId" => '$sessionId']]], 
        ['$group' => 
            ['_id' => '$_id.gameType' ], 
            'countGame' => ['$sum' =>  1 ]],    
    ],
    'cursor' => new stdClass,
]);

$cursor = $manager->executeCommand('falcon', $command);

上面的代码给出了以下错误:

  

管道阶段规范对象必须只包含一个字段

我试图改变几个分组订单,但它没有用。这是PHP的限制,每个命令只有一个组阶段吗?

0 个答案:

没有答案