Агрегация в поисковом запросе не работает при использовании метода агрегирования в коллекции

Работает и возвращает мне одну запись

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"
        }}
    ]
})

Не знаю почему! Второй запрос генерируется адаптером mongodb для cakephp.

РЕДАКТИРОВАТЬ

Соответствующий код 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 ответ

Решение

Анкит,

В MongoDB нет средства для выполнения агрегатного конвейера через запрос поиска. Вы можете найти более подробную информацию о методе, используемом специально для агрегата, в драйвере MongoDB/PHP - http://www.php.net/manual/en/mongocollection.aggregate.php.

Другие вопросы по тегам