Агрегация в поисковом запросе не работает при использовании метода агрегирования в коллекции
Работает и возвращает мне одну запись
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.