【发布时间】:2018-11-01 10:45:09
【问题描述】:
我正在尝试使用此数组进行聚合:
[
[
'$match' => ['deck_id' => 18],
],
[
'$project' => [
'stack' => 1,
]
],
[
'$unwind' => '$stack'
],
[
'$group' => [
'_id' => '$stack.response',
'responses' => [
'$push' => '$$ROOT.stack'
]
]
],
[
'$project' => [
'responses_count' => ['$size' => '$responses']
]
]
]
但我收到以下异常: 无法识别的管道阶段名称:'$unwind'
我还在 GitHub 中创建了一个带有此错误的问题。我正在使用 mongodb 4 和来自 pecl 的最新 mongodb 扩展。
https://github.com/mongodb/mongo-php-driver/issues/935
例如,以下查询在 Mongo 客户端上可以正常工作,但在 PHP 中则不行:
db.getCollection('game_statistics').aggregate([
{$match: {deck_id: 18}},
{$project: {stack: 1}},
{$unwind: "$stack"},
{$group: {_id: "$stack.response", responses: {$push: "$$ROOT.stack"}}},
{$project: {responses_count: {'$size': "$responses"}}}
])
【问题讨论】:
-
首先。错误的司机。请阅读documentation from the official site,它清楚地说明了所有内容以及安装位置。此外,MongoDB 有一个针对所有错误的 JIRA 系统,并且 GitHub 上的任何“官方”存储库实际上都不开放用于提交“问题”。
-
?这不是错误的驱动程序!
-
我都安装了,请不要以为我是新手 :) 我是一名资深人士,我正在通过 composer 使用 LIB。这就是异常的来源......你是否熟悉PHP扩展和lib?
-
安装的扩展版本:1.5.3,安装的lib版本:1.4.2
标签: mongodb php-mongodb