如何在mogodb php查询中进行排序和选择distinct

如何在mogodb php查询中进行排序和选择distinct,php,mongodb,sorting,distinct,Php,Mongodb,Sorting,Distinct,我有一个带有聚合框架的mongo php查询,现在我想为该查询添加排序和选择不同的条件,请不要告诉我,如果没有这两个标准,我的查询工作得很好 看一看 $result = $collection->aggregate(array( array( '$match' => array( 'Details.Model' =>"AUDI", 'Details.Color' => "RED", "Category" =>"Car" ) ), arr

我有一个带有聚合框架的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"
  ),

 )
 ));
我想要的是对
详细信息进行排序。Price
按降序排序,还可以将
分类
详细信息进行排序。OwnerNameFirst
作为选择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"}]

似乎大部分是这样,但问题是,如果我们是“分组”(这意味着不同),那么这意味着“价格”有不止一个值

那你想要哪一个?还是

我将使用作为示例,但根据您的需要进行更换:

$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,
        )
    )
));
因此,一旦通过不同的键得到一个值,就只需添加一个阶段。但选择您真正想要的文件。

检查文档:

PHP等价物:

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

查看查看更多信息。

显示
$result的输出
我得到了结果,但在自动完成视图中没有显示任何内容,我使用此查询形成了一个自动完成的文本框,在此查询之后,我还将结果json编码为
json_encode($result['result'])另外,我在控制台中获得了唯一的值,作为mozilla firebug中的响应
array(
    '$sort' => array("$Details.Price" => -1),
)