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条)

报告相同问题?

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题