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 を作成するにはどうすればよいですか?