0

我正在尝试按价格高-> 低和低-> 高对 Mongo 数据库中的房地产进行排序。这就是我进行查询的方式:

<?php
// open connection to MongoDB server
$conn = new Mongo();
$db = $conn->test;
$collection = $db->residential;
$filter = array('LISTSTATUS' => 'Active');
$listings = $collection->find($filter);
// Sort by price High->Low
$listings->sort(array('LISTPRICE' => -1));
// Skip if the offset is set
if($skip != 0)
{
     $listings->skip($skip);
}
// 9 results per page
$listings->limit(9);
?>

在视图中,我只是做一个这样的while循环:

foreach($listings as $listing)
{
   print_r($listing);
}

该脚本返回一个 Mongo 对象,但它没有正确排序。看起来它将“LISTPRICE”作为字符串:

Array
(
    [LISTPRICE] => 999900
)
1           
        Array
(
    [LISTPRICE] => 99900
)
1   
        Array
(
    [LISTPRICE] => 99900
)
1       
        Array
(
    [LISTPRICE] => 99900

)

99.9 万美元和 9.9 万美元之间存在巨大差距,我敢肯定,在这个范围内有房产。如果我从低->高排序,第一页上的房产是 100 万美元和 10 万美元。如何让 mongodb 将价格作为整数或双精度而不是字符串?

4

0 回答 0