この記事で言及されている整数の問題は、実際には MongoDB の問題ではなく、PHP ドライバーの問題です。MongoDB 自体には 2 つの整数型があります。つまり、32 ビット整数と 64 ビット整数です。 , ただし、古いバージョンの PHP ドライバーでは、オペレーティング システムが 32 ビットか 64 ビットかに関係なく、すべての整数が 32 ビット整数として扱われるため、64 ビット整数は切り捨てられます。可能な限り互換性を維持しながらこの問題を解決するために、新しいバージョンの PHP ドライバーには、64 ビット動作で整数を 64 ビットとして扱うための mongo.native-long オプションが追加されました。興味のある方は、MongoDB の 64 ビット整数 を参照してください。
では、PHP ドライバーは本当に整数の問題を完全に解決できるのでしょうか?いいえ!グループ操作の処理中に バグ があります:
問題を説明するために、まずテスト データを生成してみましょう:
<font face="NSimsun"><?php <br/><br>ini_set("mongo.native_long", 1);<br><br>$instance = 新しい Mongo ();<br><br>$instance = $instance->selectCollection("test", "test");<br><br>for ($i = 0; $i $instance->insert(array(<br> "group_id" => rand(1, 5),<br> "count" => rand(1, 5) ),<br> ));<br>}<br><br>?></font>
|
|
|
|
|
<font size="2" face="新宋体">ini_set("mongo.native_long", 0);</font>
|
<font size="2" face="新宋体">$initial = array("count" => (float)0);</font>
|
<font size="2" face="新宋体"><?php <br/><br>ini_set("mongo.native_long", 1);<br><br>$instance = new Mongo();<br><br>$instance = $instance->selectDB("test");<br><br>$map = "<br> function( ) {<br> Emit(this.group_id, this.count);<br> }<br>";<br><br>$reduce = "<br> function(key, value) {<br> var sum = 0;<br><br> for (値の var インデックス) {<br> var sum = 0;<br><br> }<br><br> / > return sum;<br> }<br>";<br><br>$result = $instance->command(array(<br> "mapreduce" => "test", "map" => $map,<br> "reduce" => $reduce<br>));<br><br>$result = iterator_to_array($instance->; { $result["result"]}->find());<br><br>var_dump($result);<br><br>?></font>
|

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
