dsadasd12132 2014-06-14 10:05
浏览 232
已采纳

在mongoDB中将第二个参数添加到$ match

I have some collection

**name    lastname    status**

Jack     Nons       "no"
Toni     Griffon    "no"
Anna     Griffon    "no"
Alex     Maxvel     "yes"
Nina     Maxvel     "yes"

I want to recieve the lastnames, which is not unique and where status is "yes".

My code wrote in php and I recieved all not unique lastnames but don't check status.

 $cursor = $collection->aggregate(
            array(

                array(
                    '$group' => array("_id" => array('lastname' => '$lastname'), 'total' => array('$sum' => 1)
                     )
                ),

                array(
                    '$match' => array('total' => array('$gt' => 1)
                     ),

                )

            )
        );

Please tell me how to add checking of status?

  • 写回答

2条回答 默认 最新

  • dongpin1059 2014-06-14 10:20
    关注

    You can have multiple $match stages in the aggregation pipeline and multiple conditions in one $match operator.

    It would be would faster to first filter documents that have 'status' == 'yes' and then to group them. The $group operation will then have less documents to process:

    $collection->aggregate(array(
        array(
            array(
                '$match' => array('status' => 'yes'),
            ),
            array( 
                '$group' => array(
                    "_id" => array('lastname' =>'$lastname'), 
                    'total' => array('$sum' => 1)
                )
            )
        )
    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R