在本地环境中,我使用Windows,PHP 5.5.0和最新版本的MongoDB和MongoDB驱动程序。在产品中我使用:Cent OS 6,都是一样的。
我的代码是:
$result = $mongodb->messages->aggregate(
['$match' =>
['$or' =>
[
array('from_group' => $hangoutA),
array('from_group' => $hangoutB),
]
]
],
[ '$group' => [
'_id' => null,
'message' => ['$last' => '$message'],
'sent_time' => ['$last' => '$sent_time']
]
]);
此代码适用于本地,但不适用于生产。
返回:Parse error: syntax error, unexpected '[', expecting ')' in /var/www/html/app/models/Messages.php on line 43
答案 0 :(得分:1)
问题是我在生产中没有相同的PHP版本。您需要PHP 5.4+才能在PHP中使用([])
。
更新您的PHP版本,即解决方案。
答案 1 :(得分:0)
井聚合期望它的管道参数作为列表,所以我建议用[ .. ]
包装语句如下:
$result = $mongodb->messages->aggregate([
['$match' =>
['$or' =>
[
array('from_group' => $hangoutA),
array('from_group' => $hangoutB),
]
]
],
[ '$group' => [
'_id' => null,
'message' => ['$last' => '$message'],
'sent_time' => ['$last' => '$sent_time']
]]
]);