Как сделать сортировку и выбрать отдельный в mogodb php query

У меня есть mongo php-запрос с агрегатной работой кадра, теперь я хочу добавить сортировку и выбрать различные критерии для этого запроса, пожалуйста, не то, что мой запрос работает отлично без этих двух критериев,

взглянуть

$result = $collection->aggregate(array( array( '$match' => array( 'Details.Model' =>"AUDI", 'Details.Color' => "RED", "Category" =>"Car" ) ), array( '$unwind' => '$Details' ), array( '$match' => array( 'Details.Model' =>"AUDI", 'Details.Color' => "RED", "Category" =>"Car" ) ), array( '$project' => array( 'Pvalue' => '$Details.Price', "Ovalue" =>'$Details.OwnerNameFirst', "Cvalue"=>''$Category" ), ) )); 

я хочу, чтобы сортировать Details.Price в порядке убывания, также Details.OwnerNameFirst и Details.OwnerNameFirst as Select Distinct

Пожалуйста помоги

это результат, значение $ result

 [{"_id":{"$id":"537dbca305a7d12f06000001"},"Pvalue":"60000","Ovalue":"jason","Cvalue":"Car"},{"_id": {"$id":"537dbca305a7d12f06000001"},"Pvalue":"59000","Ovalue":"george","Cvalue":"Jeep"},{"_id":{"$id":"537dbca305a7d12f06000001"},"Pvalue":"61000","Ovalue":"rahul""Cvalue":"Car"}] 

Похоже, в основном там, но вопрос в том, что если мы «группируем» (что означает «отличные»), то это означает, что здесь существует более одного значения «цена».

Итак, чего вы хотите? $min $max $first $last или $avg ?

Я буду использовать $avg в качестве примера, но заменим в соответствии с вашими потребностями:

 $result = $collection->aggregate(array( array( '$match' => array( 'Details.Model' =>"AUDI", 'Details.Color' => "RED", "Category" =>"Car" ) ), array( '$unwind' => '$Details' ), array( '$match' => array( 'Details.Model' =>"AUDI", 'Details.Color' => "RED", "Category" =>"Car" ) ), array( '$group' => array( '_id' => array( "Ovalue" =>'$Details.OwnerNameFirst', "Cvalue"=>''$Category" ), 'Pvalue' => array( '$avg' => '$Details.Price' ) ) ), array( '$sort' => array( 'Pvalue' => -1, ) ) )); 

Поэтому, когда у вас есть значение с помощью отдельных ключей, вы просто добавляете этап $sort . Но выберите, какой из операторов группы вы действительно хотите.

Проверьте документы для $ sort :

 $sort: { Details.Price: -1 } 

PHP-эквивалент:

 array( '$sort' => array("$Details.Price" => -1), ) 

Для получения дополнительной информации просмотрите документы PHP .