У меня есть следующий запрос MongoDB:
db.crimes.aggregate([
{ $match: {"CrimeLSOAName":/.*Bradford.*/} },
{
$group: {
"_id": "$CrimeType",
"count": {
$sum: 1
}
}
},
{
$sort: {
"count": -1
}
},
{
$limit: 10
}
])
Что выводит десять наиболее распространенных «типов преступлений», где поле CrimeLSOAName содержит «Брэдфорд». Я пытаюсь использовать запрос в PHP, мои попытки приведены ниже, но запрос выполняется неправильно. Если кто-то может помочь, это будет оценено.
Попытка использовать в PHP:
$top10Crimes = array(
array('$match') => array('CrimeLSOAName:/.*Bradford.*/'),
array(('$group') => array('_id' => '$CrimeType',
'count' => '$sum: 1')),
array('$sort') => array('count' => '-1')
array('$limit' => '10')
);
$result = $collection->aggregate($top10Crimes);






Ваш массив недействителен, это должно работать. Обычно это помогает отформатировать ваш массив аналогично конвейеру, который у вас есть в оболочке mongo.
$top10Crimes = array(
array(
'$match' => array(
'CrimeLSOAName' => '.*Bradford.*/'
)
),
array(
'$group' => array(
'_id' => '$CrimeType',
'count' => array(
'$sum' => 1
)
)
),
array(
'$sort' => array(
'count' => '-1'
)
),
array(
'$limit' => '10'
)
);