1
私はmongoDB PHPを使用しています。検索クエリまたは集計フレームワークを使用すると、結果がカーソルになります。foreachループまたはwhileループを使用してカーソルを反復処理できます。私は二つの方法 mongoDB foreachループとwhileループ間のカーソルの違い
1- foreach($result as $mongoid => $doc) {
echo "mongoid is " . $mongoid;
print_r($doc);
}
2- while ($result->hasNext()) {
$doc = $result->getNext();
$result->next();
print_r($doc);
echo "find one doc in cursor\n";
}
上記の反復法の最高の理由です
次使用して結果を反復処理することができる午前$result = $collection->find();
たとえば、私は次のクエリは実行する必要がありますか?
foreachループとwhileループについて説明しますが、foreachループが使用されているときはMongoDB Cursorメソッドは使用されませんが、Whileループを使用すると、例えば、-hasNext()やgetNext()など、MongoDB Cursorメソッドを使用しました。それでもコードにはパフォーマンスの違いやその他の違いはありませんか? – Shahbaz
私は確信していません(ベンチマークする必要があります)が、私は実際にあなたの例からの 'foreach'ループはwhileループよりも速くなければならないと思います。なぜなら、カーソルメソッドを使用せずコアphpメソッドしか使用しないからです。 – aokozlov