Php/docs/class.mongodb

提供:Dev Guides
< Php
移動先:案内検索

(PECL mongo >=0.9.0)

はじめに

このクラスのインスタンスを使用してデータベースとのやりとりを行います。 データベースを取得するには、このようにします。

例1 データベースの選択

<?php$m = new MongoClient(); // 接続$db = $m->selectDB("example");?>

データベース名には、ASCII の範囲内でほとんどの文字を使うことができます。 しかし、" " や "." を使うことはできず、空文字列にすることもできません。 "system" という名前も予約済みで、使うことができません。 あまり一般的ではありませんが、 "null"、"[x,y]"、"3"、"\""、"/" などは正しい形式のデータベース名です。

コレクション名とは異なり、データベース名には "$" を含めてもかまいません。


クラス概要


MongoDB {

/* 定数 */

const int PROFILING_OFF = 0

const int PROFILING_SLOW = 1

const int PROFILING_ON = 2

/* フィールド */

public int $w = 1

public int $wtimeout = 10000

/* メソッド */

public authenticate ( string $username , string $password ) : array

public command ( array $command [, array $options = array() [, string &$hash ]] ) : array

public __construct ( MongoClient $conn , string $name )

public createCollection ( string $name [, array $options ] ) : MongoCollection

public createDBRef ( string $collection , mixed $document_or_id ) : array

public drop ( ) : array

public dropCollection ( mixed $coll ) : array

public execute ( mixed $code [, array $args = array() ] ) : array

public forceError ( ) : bool

public __get ( string $name ) : MongoCollection

public getCollectionInfo ([ array $options = array() ] ) : array

public getCollectionNames ([ array $options = array() ] ) : array

public getDBRef ( array $ref ) : array

public getGridFS ([ string $prefix = "fs" ] ) : MongoGridFS

public getProfilingLevel ( ) : int

public getReadPreference ( ) : array

public getSlaveOkay ( ) : bool

public getWriteConcern ( ) : array

public lastError ( ) : array

public listCollections ([ array $options = array() ] ) : array

public prevError ( ) : array

public repair ([ bool $preserve_cloned_files = false [, bool $backup_original_files = false ]] ) : array

public resetError ( ) : array

public selectCollection ( string $name ) : MongoCollection

public setProfilingLevel ( int $level ) : int

public setReadPreference ( string $read_preference [, array $tags ] ) : bool

public setSlaveOkay ([ bool $ok = true ] ) : bool

public setWriteConcern ( mixed $w [, int $wtimeout ] ) : bool

public __toString ( ) : string

}

定義済み定数

MongoDB ログレベル

MongoDB::PROFILING_OFF
プロファイリングをオフにします。
MongoDB::PROFILING_SLOW
襲い接続 (>100 ms) に対するプロファイリングをオンにします。
MongoDB::PROFILING_ON
すべての操作に対するプロファイリングをオンにします。


フィールド

w
1

成功を返す前に変更をレプリケートするサーバーの数。このクラスの派生クラスである MongoCollection に継承されます。 w の機能が使えるのは、バージョン 1.5.1 以降の MongoDB サーバーと バージョン 1.0.8 以降のドライバを使っている場合のみです。

w は、通知レベルを調整したい場合に使います (MongoCollection::insert()MongoCollection::update()MongoCollection::remove()MongoCollection::save() そして MongoCollection::ensureIndex() はすべて、このオプションをサポートしています)。 デフォルト値 (1) の場合、安全な操作は、 データベースサーバーでの操作が一度成功すれば結果を返します。 セカンダリへのレプリケーションが完了する前にサーバーが落ちてしまうと、 その操作が永遠に失われてしまう可能性があります。そこで w の値を 1 より大きく設定し、 少なくとも一台のセカンダリでの操作が完了してからでないと処理が成功したと見なさないようにするのです。

たとえば w を 2 にすると、メインのサーバー以外に ひとつのセカンダリ上で操作が記録されない限り、ドライバは MongoCursorException をスローします。 w の数をプライマリと全セカンダリの総数に設定したくなるかもしれませんが、 もしそうすると、ひとつのセカンダリがダウンしただけで操作が失敗して例外が発生するようになります。 通常は、w=2 (プライマリ、そしてセカンダリ一台) としておくのがいちばん安全でしょう。

wtimeout
10000

MongoDB::$w のレプリケーションが完了するまでに待つミリ秒数。 このクラスの派生クラスである MongoCollection に継承されます。 w の機能が使えるのは、バージョン 1.5.1 以降の MongoDB サーバーと バージョン 1.0.8 以降のドライバを使っている場合のみです。

wtimeout を設定しなければ、w のサーバーへのレプリケーションが完了するまでずっと待ち続けます。 ドライバのデフォルトは 10 秒ですが、この値を変更して挙動を変えることができます。


参考

MongoDB コアドキュメントの » データベース を参照ください。


目次