私は長い整数を扱っています。
次のように、php でクエリ配列を作成しました。
$find_count = array("key"=>$keyword, "type"=>$type, "fromTime"=>array('$gt'=> $fromTimeEpoch, "\$lte" => $toTimeEpoch));
$cursor_count = $coll_count->find($find_count, $projection_count);//Query mongodb. $coll_count is a MongoDB collection.
ここで、$fromTimeEpoch と $toTimeEpoch は LONG 変数です。
$find_count をエコーすると、$fromTimeEpoch と $toTimeEpoch が正常に出力されます (1372617000000 のようなもの)。
ただし、これらのクエリは mongo サーバーに正しく到達していません。$fromTimeEpoch と $toTimeEpoch の値として mongo サーバーが受け取るものは負の整数 (-1858934720 のようなもの) です。
問題は、なぜこれらの LONG がマイナスに変換されるのかということです。
PHPで長い変数を渡す正しい方法は何ですか?
注:私のmongoデータベースでは、「fromTime」フィールドはLONGタイプです(STRINGではありません)。