所以我想从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));
否则,您只是遍历未排序的原始游标。看这里。