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