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,000 ドルと 9 万 9,000 ドルの間には大きなギャップがあり、その範囲内に物件があると確信しています。Low->High で並べ替えると、最初のページのプロパティは 100 万ドルと 10 万ドルです。文字列ではなく整数または double として価格を取るように mongodb を作成するにはどうすればよいですか?

4

0 に答える 0