在集合do上使用聚合方法时,查找查询中的聚合不起作用

时间:2014-04-28 10:12:37

标签: mongodb cakephp mongodb-php

工作并返回一条记录

db.gfk_products.aggregate([
    {$match : {product_id : '50910288'}},
    {$project : {
        features: "$features.key"
    }}
])

不返回任何内容

db.gfk_products.find({

    aggregate : [
        {$match : {product_id : '50910288'}},
        {$project : {
            features: "$features.key"
        }}
    ]
})

不知道为什么!第二个查询由用于cakephp的mongodb适配器生成。

修改

各自的Cakephp代码

$cond['conditions'] = array(
    'aggregate' => array(
        array(
            '$match' => array(
                'product_id' => $itemID
            ),
        ),
        array(
            '$project' => array(
                'features' => '$features.key'
            ),
        ),
    ),
);
$result = $this->Product->find('all',$cond);

1 个答案:

答案 0 :(得分:0)

ANKIT,

MongoDB中没有工具可以通过查询查询执行聚合管道。您可以在MongoDB / PHP驱动程序中找到有关专门用于聚合的方法的更多详细信息 - http://www.php.net/manual/en/mongocollection.aggregate.php