dongzi1959 2012-06-11 10:45
浏览 82
已采纳

使用PHP驱动程序的Mongo独特排序查询

Having some trouble issuing a simple query from the PHP Mongo driver. This is the shell query:

db.testing.distinct('summary.type').sort();

According to the documentation, I can do a db->command to use the distinct query. Here is what I've tried:

$all_types = $db->command(
      array(
             "distinct"      => "summary.type",
             "key"           => "summary.type"
      )
);

var_dump($all_types);

But rather than getting back the data I expect, I only get a cursor with indexes like stats, nscanned and nscannedObjects What am I doing wrong?

Thanks, ns

  • 写回答

2条回答 默认 最新

  • douluanzhao6689 2012-06-11 15:22
    关注

    Commands don't return a MongoCursor object, but always just one document. Just like with findOne(). In this returned document, the values array element in the returned array contains an array of all your results:

    <?php
    $m = new Mongo; $c = $m->demo->pubs; $c->drop();
    
    $c->insert( array( 'name' => 'Betsy Smith',   'city' => 'London' ) );
    $c->insert( array( 'name' => 'London Tavern', 'city' => 'London' ) );
    $c->insert( array( 'name' => 'Lammars',       'city' => 'Manchester' ) );
    $c->insert( array( 'name' => 'Weatherspoons', 'city' => 'Coventry' ) );
    
    $r = $m->demo->command( array(
        'distinct' => 'pubs',
        'key' => 'city',
        'query' => array( 'name' => array( '$ne' => 'Weatherspoons' ) )
    ) );
    var_dump( $r['values'] );
    ?>
    

    Which returns:

    array(2) {
      [0] =>
      string(6) "London"
      [1] =>
      string(10) "Manchester"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名