排序Mongodb光标似乎不起作用



所以我想从MongoDB中检索一堆产品,按一个名为rating的字段排序,这是一个数字字段。

为此,我做:

$cursor = $this->productCollection->find();
$cursor->sort(array("rating" => -1));

但是,当我循环光标并打印评级时:

foreach ($cursor as $id => $product)
{
   echo "<br>". $product['rating'];
}

我没有按排序顺序获得评级,我得到的值如下:

1.2
3.1
1.1
2.0
2.1
4.2
3.7

我应该怎么做才能正确排序结果?

我相信你只需要在循环之前重新分配光标:

$cursor = $cursor->sort(array("rating" => -1));

否则,您只是遍历未排序的原始游标。看这里。

最新更新