我正在研究比较 MySQL 和 MongoDB 在 CRUD 操作中的性能。当我执行这个查询时:
$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 中的搜索结果?