# MongoException クラス

(PECL mongo >= 1.0.0)

## はじめに

Mongo のデフォルトの例外です。

さまざまなエラー条件を扱います。最終的にはより詳細な例外にたどり着きますが、 それらもすべて MongoException を継承しています。

- The MongoSomething object has not been correctly initialized by its constructor

  コード: 0

  おそらく、Mongo オブジェクトがデータベースに接続していないものと思われます。

- zero-length keys are not allowed, did you use $ with double quotes?

  コード: 1

  キーとして "" を使おうとしました。一般的に、これはしていはいけないことです。 "" を使うとサブオブジェクトへのアクセスが煩雑になり、またこのキーは MongoDB が内部的に使ってもいます。しかし、どうしても使いたい場合は、php.ini ファイルで mongo.allow_empty_keys に true を設定すればこのチェックを回避できます。 回避するよう設定した場合は、エラーチェックをより厳密に行って 文字列書き込みエラーを防ぐことを推奨します。

- '.' not allowed in key: <key>

  コード: 2

  '.' を含むキーに書き込もうとしました。これは禁じられています。

- insert too large: <size>, max: <max>

  コード: 3

  長すぎるデータをデータベースに一度に送ろうとしました。データベースがデータの追加を受け付けるのは、 ある特定の大きさ (現在は 16 MB) までです。

- no elements in doc

  コード: 4

  フィールドを持たないドキュメントを保存しようとしました。

- size of BSON doc is <size> bytes, max <max>MB

  コード: 5

  MongoDB で保存可能な長さを超えるドキュメントを保存しようとしました。

- no documents given

  コード: 6

  空のドキュメントの配列を一括追加しようとしました。

- MongoCollection::group takes an array, object, or MongoCode key

  コード: 7

  間違った型パラメータを MongoCollection::group() に送信しました。

- field names must be strings

  コード: 8

  フィールドセレクタの書式は array("field1" => 1, "field2" => 1, ..., "fieldN" => 1) としなければなりません。

- invalid regex

  コード: 9

  MongoRegex に渡した正規表現が正しい形式ではありません。

- MongoDBRef::get: $ref field must be a string

  コード: 10

- MongoDBRef::get: $db field must be a string

  コード: 11

- non-utf8 string: <str>

  コード: 12

  このエラーが発生するのは、非 utf8 文字列をデータベースに送信しようとしたときです。 データベースに送る文字列はすべて UTF8 でなければなりません。 この例外を発生させなくする移行用オプションは、php.ini のオプションを参照ください。

- mutex error: <err>

  コード: 13

  マルチスレッド環境では、ドライバはリクエストとレスポンスの同期にミューテックスを使います。 これはきわめて深刻なエラーで、スタックトレースもないかもしれません。 めったに発生しないエラーなので、システムの情報と可能な限りの再現手順を添えてメンテナに報告しましょう。

- index name too long: <len>, max <max> characters

  コード: 14

  128 文字を超える名前のインデックスは作れません。このエラーが発生した場合は、 MongoCollection::ensureIndex() の "name" オプションを使って短いインデックス名をつけなければなりません。

## クラス概要

MongoException extends Exception {
}