1

CRUD 操作で MySQL と MongoDB のパフォーマンスを比較する研究を行っています。このクエリを実行しているとき:

$arrayFind = array(
  '$and' => array (
       array('ct_adult'   => array('$lte' => (int) $_GET['adult'] )),
       array('max_adult'  => array('$gte' => (int) $_GET['adult'] )),
       array('ct_child'   => array('$gte' => (int) $_GET['children'] )),
       array('min_people' => array('$lte' => (int) $people)),
       array('max_people' => array('$gte' => (int) $people)),
       array('dt_length'  => array('$gte' => (int) $_GET['length'])),
       array('code_food'  => (string) $_GET['food'])
    )      
);


$m = new MongoClient("mongodb://10.0.1.11:27010");

$db = $m->mydb;

$offers =  new MongoCollection($db, 'offers');;

$cursor = $offers->find($arrayFind)->limit(10);

foreach ($cursor as $document) {
   ...
}

結果がない場合、タイムアウト エラーが発生します (スクリプトは 30 秒待機しています)。

 Uncaught exception 'MongoCursorTimeoutException' with message '10.0.1.11:27010: cursor timed out

結果がある場合、1秒以内に結果を取得しています。「count()」メソッドを使用してこの問題を解決しようとしましたが、うまくいきませんでした。このタイムアウトの解決策はありますか? mongoで検索結果をどのように処理しますか?

4

0 に答える 0