3

我正在尝试使用 php 中的新 mongodb 聚合框架。

我在 OSX Mountain Lion 上使用 mongod v2.2、php 5.3.13 和 mongodb pecl 库 v1.3.0beta2

我在门口跌跌撞撞...

我从 php 文档页面中获取了其中一个示例并将其缩减为...

$m = new Mongo;
$c = $m->selectDB("test")->selectCollection("zips");
$out = $c->aggregate(array('$group' => array('_id' => '$state')));
var_dump($out);

当我查看页面时,我的 mongod 出现错误...

断言 13111::字段(管道)3 的错误类型!= 4

我一辈子都看不到代码有什么问题。

如果我db.zips.aggregate({$group : {'_id': "$state"}})在 mongo 控制台中运行它工作正常。

4

1 回答 1

1

这听起来可能很愚蠢,我知道MongoCollection::aggregate 文档说该方法接受多个参数作为管道的步骤,但我设法完成这项工作的唯一方法是发出包含所有管道的单个参数步骤,像这样:

$out = $c->aggregate(array(
    array(
    '$group' => array('_id' => '$state')
    )
);

我希望这有帮助。

于 2012-10-26T00:14:51.187 回答