MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollectionCrea una colección

Descripción

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

Este método se usa para crear colecciones "capped" (de tamaño fijo) y otras colecciones que requieren opciones especiales. Es idéntico a ejecutar:

<?php

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

?>
Consulte MongoDB::command() para más información sobre comandos de base de datos.

Parámetros

name

Nombre de la colección.

options

Un array que contiene opciones para las colecciones. Cada opción es su propio elemento en el array de opciones, con el nombre de la opción enumerada abajo, siendo la clave del elemento. Las opciones admitidas dependen de la versión del servidor de MongoDB y del motor de almacenamiento, ya que el controlador pasa cualquier opción que se le proporcione directamente al servidor. Unas pocas de las opciones soportadas son las siguientes, aunque se puede encontrar una lista completa en la documentación principal de MongoDB en » createCollection:

capped

Si la colección debería tener un tamaño fijo.

size

Si la colección fuera de tamaño fijo, aquí indicamos su tamaño en bytes.

max

Si la colección fuera de tamaño fijo, aquí establecemos el número máximo de elementos que podrá almacenar.

autoIndexId

Si 'capped' es TRUE, se puede especificar FALSE para deshabilitar el índice atómico creado en el campo _id. Antes de MongoDB 2.2, el valor predeterminado para autoIndexId era FALSE.

Valores devueltos

Devuelve un objeto de colección que representa la nueva colección.

Ejemplos

Ejemplo #1 Ejemplo de MongoDB::createCollection() para colección de tamaño fijo

Una colección "capped" es un tipo especial de colección que tiene un tamaño fijo o un número fijo de elementos. Una vez que la colección está "llena", los elementos más viejos se eliminan cada vez que añadimos nuevos. Estas colecciones pueden ser muy útiles para usos como registro de mensajes, donde quizás se desee mantener una determinada cantidad de espacio para mensajes sin preocuparse por si crece demasiado.

Este ejemplo crea una colección de mensajes de error muy pequeña, que mantendrá hasta 10 documentos.

<?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" => "mensaje de error #$i""ts" => new MongoDate()));
}

$msgs $log->find();

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

?>

El resultado del ejemplo sería algo similar a:


mensaje de error #90
mensaje de error #91
mensaje de error #92
mensaje de error #93
mensaje de error #94
mensaje de error #95
mensaje de error #96
mensaje de error #97
mensaje de error #98
mensaje de error #99

Historial de cambios

Versión Descripción
1.4.0

En versiones anteriores a la 1.4.0, las opciones eran todas argumentos del método. La sinopsis de la función en esas versiones antiguas es:

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

El significado de las opciones es el mismo que el descrito bajo el argumento options de arriba.