如何在php中排序和限制内部文件mongodb

时间:2012-11-20 20:49:32

标签: php mongodb

我在这里有阵列。

http://pastebin.com/i5ZUQNm6

这来自php结果。

$result1 = $mo->find(
  array(
    'username' => 'BLABLA',
    'stream' => array('$exists' => true)
  )
);  
foreach ($result1 as $obj) {
  print_r($obj);
}

我如何对[stream]子进行排序并将其限制为1个结果?以及如何找到[id_stream]孩子?

谢谢

2 个答案:

答案 0 :(得分:0)

限制为单个文档 使用limit(1)

  

$ result1 = $ mo-> find(array(       'username'=> 'BLABLA',       'stream'=> array('$ exists'=> true))) - > limit(1);

findOne

  

$ result1 = $ mo-> findOne(array(       'username'=> 'BLABLA',       'stream'=> array('$ exists'=> true)));


对孩子进行分类。 您还需要在最后添加->sort(array("stream.time" => -1)); 我见过了pastebin,我想你想按日期订购。


最终代码:

 $result1 = $mo->findOne(   array(
     'username' => 'BLABLA',
     'stream' => array('$exists' => true)))->sort(array("stream.time" => -1));;

从我所知道的限制到数组的单个值,你需要一个循环 你需要添加(在find中,在主数组之后):find(.... , array('streams' => array('$slice' => 1)));

答案 1 :(得分:0)

使用sortlimit的组合应该可行 - 慢速的答案中的代码看起来可能就是您所需要的。