Laracon EU Online 2021

MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollectionコレクションを作成する

説明

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

このメソッドを使って、固定サイズのコレクションや 特別なオプションを要するその他のコレクションを作成します。 これは、次の操作と同じ意味です。

<?php

$collection 
$db->command(array(
    
"create" => $name,
    
"capped" => $options["capped"],
    
"size" => $options["size"],
    
"max" => $options["max"],
    
"autoIndexId" => $options["autoIndexId"],
));

?>
データベースコマンドについての詳細な情報は MongoDB::command() を参照ください。

パラメータ

name

コレクションの名前。

options

コレクションのオプションを含む配列。個々のオプション用の要素がこの配列に用意されており、 以下に挙げるオプション名が配列のキーになります。サポートするオプションは、 MongoDB サーバーのバージョンやストレージエンジンによって変わります。 また,ドライバーは、受け取ったオプションをすべてそのままサーバーに渡します。 現時点でサポートするオプションの一部を以下に示します。すべてのオプションの一覧は、 MongoDB コアドキュメントの » createCollection を参照ください。

capped

コレクションが固定サイズかどうか。

size

コレクションが固定サイズの場合にそのバイト数を指定します。

max

コレクションが固定サイズの場合に、コレクション内に格納できる要素の最大数。

autoIndexId

capped が TRUE のときにこれを FALSE にすると、_id フィールド上での自動的なインデックス作成を無効化できます。 MongoDB 2.2 より前のバージョンでは、 autoIndexId のデフォルト値は FALSE でした。

返り値

新しいコレクションをあらわすコレクションオブジェクトを返します。

例1 MongoDB::createCollection() での固定サイズコレクションの例

固定サイズのコレクションは特別な形式のコレクションで、 固定長あるいは決まった数の要素を持ちます。 コレクションがいっぱいになると、 新しい要素が追加されたときにいちばん古いものから削除されていきます。 固定サイズのコレクションは、ログ記録などのアプリケーションで有用です。 ログ用の領域をいちど確保しておけば、それが大きくなりすぎることを気にせずにすみます。

この例は、最大で 10 のドキュメントを保持する小さなログコレクションを作ります。

<?php

$log 
$db->createCollection(
    
"logger",
    array(
        
'capped' => true,
        
'size' => 10*1024,
        
'max' => 10
    
)
);

for (
$i 0$i 100$i++) {
    
$log->insert(array("level" => WARN"msg" => "sample log message #$i""ts" => new MongoDate()));
}

$msgs $log->find();

foreach (
$msgs as $msg) {
    echo 
$msg['msg']."\n";
}

?>

上の例の出力は、 たとえば以下のようになります。


sample log message #90
sample log message #91
sample log message #92
sample log message #93
sample log message #94
sample log message #95
sample log message #96
sample log message #97
sample log message #98
sample log message #99

変更履歴

バージョン 説明
PECL mongo 1.4.0

1.4.0 より前のバージョンでは、個々のオプションがすべてメソッドの引数になっていました。 旧バージョンのシグネチャは、次のとおりです。

public MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] ) : MongoCollection

各オプションの意味は、先ほど options 引数のところで説明したとおりです。

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top