MongoCollection
PHP Manual

MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::findコレクションに問い合わせる

説明

public MongoCursor MongoCollection::find ([ array $query = array() [, array $fields = array() ]] )

パラメータ

query

検索したいフィールド。

fields

返される結果のフィールド。

返り値

検索結果のカーソルを返します。

例1 MongoCollection::find() の例

この例は、範囲指定検索の方法を示します。

<?php

// 5 < x < 20 であるドキュメントを検索します
$rangeQuery = array('x' => array( '$gt' => 5'$lt' => 20 ));

$cursor $collection->find($rangeQuery);

?>

カーソルの挙動についての詳細な情報は MongoCursor を参照ください。

例2 MongoCollection::find() での $where の使用例

この例は、コレクションの検索に javascript コードを使って結果セットを小さくする方法を示します。

<?php

$collection 
$db->my_db->articles;

$js "function() {
  return this.type == 'homepage' || this.featured == true;
}"
;
$articles $collection->find(array('$where' => $js));

?>

例3 MongoCollection::find() での $in の使用例

この例は、コレクションの検索に $in 演算子を使う方法を示します。

<?php

$collection 
$db->my_db->articles;
$articles $collection->find(array(
  
'type' => array('$in' => array('homepage''editorial'))
));

?>

例4 配列形式での結果の取得

このメソッドは MongoCursor を返します。 しかし、配列形式のほうが使いやすいという人もいるでしょう。 カーソルを配列に変換するには iterator_to_array() 関数を使います。

<?php

$cursor 
$collection->find();
$array iterator_to_array($cursor);

?>

iterator_to_array() を使うと、結果全体をメモリに展開することになります。 メモリサイズを超える結果セットではこれを使わないでください!

また、一部のシステムコレクションには _id フィールドを持たないものがあります。_id がないドキュメントを含むかもしれないコレクションを扱う場合は、 iterator_to_array() の二番目の引数に FALSE を渡します (そうすれば、存在しない _id の値をキーとして使うことがなくなります)。

参考

MongoDB コアドキュメントの » find を参照ください。


MongoCollection
PHP Manual