ドキュメントを検索する

# Collection::find

(No version information available, might only be in Git)

Collection::find — ドキュメントを検索する

### 説明

public function mysql_xdevapi\Collection::find(string `$search_condition` = ?): mysql_xdevapi\CollectionFind

ドキュメントが属するデータベースコレクションやドキュメントの集合を検索します。 見つかったドキュメントは CollectionFind オブジェクトとして返され、 後の変更や結果の取得に使えます。

### パラメータ

`search_condition`

  オプションですが、通常はドキュメントのサブセットの結果を限定するために条件を定義します。

  複数の要素が条件を構成できますし、条件の文法はパラメータのバインドもサポートしています。 検索条件として使える式は MySQL で有効なものでなければなりません。 検索条件が与えられない(フィールドが空)場合、find('true') が与えられたと見做されます。

### 戻り値

操作を検証したり、見つかったドキュメントを取得するための CollectionFind オブジェクト

### 例

例1 mysql_xdevapi\Collection::find() の例

    <?php
    $session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

    $session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
    $session->sql("CREATE DATABASE addressbook")->execute();

    $schema     = $session->getSchema("addressbook");
    $collection = $schema->createCollection("people");

    $collection->add('{"name": "Alfred",     "age": 18, "job": "Butler"}')->execute();
    $collection->add('{"name": "Bob",        "age": 19, "job": "Swimmer"}')->execute();
    $collection->add('{"name": "Fred",       "age": 20, "job": "Construction"}')->execute();
    $collection->add('{"name": "Wilma",      "age": 21, "job": "Teacher"}')->execute();
    $collection->add('{"name": "Suki",       "age": 22, "job": "Teacher"}')->execute();

    $find   = $collection->find('job LIKE :job AND age > :age');
    $result = $find
      ->bind(['job' => 'Teacher', 'age' => 20])
      ->sort('age DESC')
      ->limit(2)
      ->execute();

    print_r($result->fetchAll());
    ?>

上の例の出力は以下となります。

    Array
    (
        [0] => Array
            (
                [_id] => 00005b6b536100000000000000a8
                [age] => 22
                [job] => Teacher
                [name] => Suki
            )
        [1] => Array
            (
                [_id] => 00005b6b536100000000000000a7
                [age] => 21
                [job] => Teacher
                [name] => Wilma
            )
    )

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open